Dalam kasus Anda, tampaknya karena Anda menggunakan @comments.to_sql
Anda menarik pernyataan yang sudah disiapkan itu ke subpilihan Anda tanpa memasukkan parameter untuk itu. Anda dapat mencoba memasukkan data komentar seperti ini:
@comments = current_clinician.comments.select('ON (patient_id) *').uniq.order("patient_id, created_at DESC").include(:comment)
@comment_list = @comments.include(:comment)
Masalah ini juga tampaknya berasal dari cara pernyataan yang disiapkan dibuat di Rails dan dapat disebabkan oleh salah satu masalah di dalam Rails itu sendiri (Masalah Rails #15920 , yang telah diperbaiki di Rails 4.2) atau dengan masalah dengan berbagai permata yang membantu menghasilkan kueri (contoh:Rails issue #20236 ) atau bahkan dengan cara Anda mendefinisikan asosiasi model Anda (Masalah rel #12852 ).
Dimungkinkan untuk langsung menonaktifkan pernyataan yang disiapkan dengan menambahkan arahan ke database.yml
Anda berkas:
production:
adapter: postgresql
database: prod_dbname
username: prod_user
password: prod_pass
prepared_statements: false
Tapi pertama-tama, Anda mungkin ingin memeriksa dan memastikan Anda tidak menggunakan parameter yang tidak perlu dalam asosiasi model Anda seperti ini:
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
...yang seharusnya hanya meninggalkan foreign_key
, seperti ini:
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