sql >> Database teknologi >  >> RDS >> PostgreSQL

Protokolbrud:FEJL:bindingsmeddelelse leverer 0 parametre, men forberedt sætning kræver 1

I dit tilfælde ser det ud til, at fordi du bruger @comments.to_sql du trækker den forberedte erklæring ind i dit undervalg uden at indsætte parameteren for den. Du kan prøve bare at inkludere kommentardata som dette:

  @comments = current_clinician.comments.select('ON (patient_id) *').uniq.order("patient_id, created_at DESC").include(:comment)
  @comment_list = @comments.include(:comment)

Dette problem ser også ud til at komme fra den måde, de forberedte erklæringer er bygget i Rails og kan være forårsaget af begge problemer i Rails selv (Rails problem #15920 , som er blevet rettet i Rails 4.2) eller af problemer med forskellige ædelstene, der hjælper med at generere forespørgsler (eksempel:Rails issue #20236 ) eller endda ved den måde, du definerer dine modeltilknytninger på (Rails problemer #12852 ).

Det er muligt ligefrem at deaktivere forberedte udsagn ved at tilføje et direktiv til din database.yml fil:

production:
  adapter: postgresql
  database: prod_dbname
  username: prod_user
  password: prod_pass
  prepared_statements: false

Men først vil du måske tjekke og sikre dig, at du ikke bruger unødvendige parametre i dine modeltilknytninger som denne:

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

...hvilket bare skulle udelade foreign_key , sådan her:

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



  1. Unserialize PHP ved hjælp af Microsoft SQL Query

  2. Opret Trigger for at slette rækker, der er>90 dage gamle

  3. MySQL-type til opbevaring af et år:Smallint eller Varchar eller Dato?

  4. Hvordan bruger man Mysql-variabler med Hibernate?