I ditt fall verkar det som om du använder @comments.to_sql
du drar in det förberedda uttalandet i ditt underval utan att ta in parametern för det. Du kan prova att bara inkludera kommentarsdata så här:
@comments = current_clinician.comments.select('ON (patient_id) *').uniq.order("patient_id, created_at DESC").include(:comment)
@comment_list = @comments.include(:comment)
Det här problemet verkar också komma från det sätt som de förberedda uttalandena är inbyggda i Rails och kan orsakas av båda problem inom Rails själv (Rails problem #15920 , som har åtgärdats i Rails 4.2) eller av problem med olika ädelstenar som hjälper till att generera frågor (exempel:Rails-problem #20236 ) eller till och med hur du definierar dina modellassociationer (Rails problem #12852 ).
Det är möjligt att helt enkelt inaktivera förberedda uttalanden genom att lägga till ett direktiv till din database.yml
fil:
production:
adapter: postgresql
database: prod_dbname
username: prod_user
password: prod_pass
prepared_statements: false
Men först kanske du vill kontrollera och se till att du inte använder onödiga parametrar i dina modellassociationer så här:
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
...som bara borde utelämna foreign_key
, så här:
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