En su caso, parece que porque está utilizando @comments.to_sql
está extrayendo esa declaración preparada en su subselección sin traer el parámetro para ello. Puede intentar simplemente incluir los datos del comentario de esta manera:
@comments = current_clinician.comments.select('ON (patient_id) *').uniq.order("patient_id, created_at DESC").include(:comment)
@comment_list = @comments.include(:comment)
Este problema también parece provenir de la forma en que las declaraciones preparadas se crean en Rails y podría deberse a problemas dentro de Rails (problema de Rails #15920 , que se solucionó en Rails 4.2) o por problemas con varias gemas que ayudan a generar consultas (ejemplo:Problema de Rails #20236 ) o incluso por la forma en que define sus asociaciones de modelos (problemas de Rails #12852 ).
Es posible deshabilitar completamente las declaraciones preparadas agregando una directiva a su database.yml
archivo:
production:
adapter: postgresql
database: prod_dbname
username: prod_user
password: prod_pass
prepared_statements: false
Pero primero, es posible que desee verificar y asegurarse de que no está utilizando parámetros innecesarios en sus asociaciones de modelos como esta:
class DashboardTab < ActiveRecord::Base
has_many :dashboard_tab_feeds, foreign_key: :dashboard_tab_id, dependent: :destroy
has_many :social_feeds, through: :dashboard_tab_feeds
end
class DashboardTabFeed < ActiveRecord::Base
belongs_to :social_feed
belongs_to :dashboard_tab
end
class SocialFeed < ActiveRecord::Base
has_many :dashboard_tab_feeds, foreign_key: :social_feed_id, dependent: :destroy
end
... que debería omitir foreign_key
, así:
class DashboardTab < ActiveRecord::Base
has_many :dashboard_tab_feeds, dependent: :destroy
has_many :social_feeds, through: :dashboard_tab_feeds
end
class DashboardTabFeed < ActiveRecord::Base
belongs_to :social_feed
belongs_to :dashboard_tab
end
class SocialFeed < ActiveRecord::Base
has_many :dashboard_tab_feeds, dependent: :destroy
end