No seu caso, parece que você está usando o
@comments.to_sql
você está puxando essa instrução preparada para sua subseleção sem trazer o parâmetro para ela. Você pode tentar apenas incluir os dados do comentário assim: @comments = current_clinician.comments.select('ON (patient_id) *').uniq.order("patient_id, created_at DESC").include(:comment)
@comment_list = @comments.include(:comment)
Esse problema também parece vir da maneira como as instruções preparadas são construídas no Rails e podem ser causadas por problemas dentro do próprio Rails (problema do Rails #15920 , que foi corrigido no Rails 4.2) ou por problemas com várias gems que ajudam a gerar consultas (exemplo:problema do Rails #20236 ) ou até mesmo pela maneira como você define suas associações de modelo (problemas do Rails #12852 ).
É possível simplesmente desabilitar instruções preparadas adicionando uma diretiva ao seu
database.yml
Arquivo:production:
adapter: postgresql
database: prod_dbname
username: prod_user
password: prod_pass
prepared_statements: false
Mas primeiro, você pode querer verificar e certificar-se de que não está usando parâmetros desnecessários em suas associações de modelo como este:
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 deve deixar de fora
foreign_key
, assim: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