PostgreSQL
 sql >> Baza danych >  >> RDS >> PostgreSQL

ProtocolViolation:BŁĄD:komunikat bind dostarcza 0 parametrów, ale przygotowana instrukcja wymaga 1

W twoim przypadku wydaje się, że ponieważ używasz @comments.to_sql przeciągasz tak przygotowaną instrukcję do swojej podselekcji bez wprowadzania dla niej parametru. Możesz spróbować po prostu dołączyć dane komentarzy w ten sposób:

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

Ten problem wydaje się również wynikać ze sposobu, w jaki przygotowane instrukcje są budowane w Rails i mogą być spowodowane przez problemy w samych Railsach (problem Rails #15920 , który został naprawiony w Rails 4.2) lub przez problemy z różnymi klejnotami, które pomagają generować zapytania (przykład:Rails issue #20236 ) lub nawet przez sposób definiowania skojarzeń modeli (problemy z Railsami #12852 ).

Możliwe jest po prostu całkowite wyłączenie przygotowanych instrukcji, dodając dyrektywę do pliku database.yml plik:

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

Ale najpierw możesz chcieć sprawdzić i upewnić się, że nie używasz niepotrzebnych parametrów w skojarzeniach modeli w następujący sposób:

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

...co powinno po prostu pominąć foreign_key , tak:

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. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Odpowiednik DATEADD w PostgreSQL

  2. node-postgres utwórz bazę danych

  3. Jak przekonwertować numpy NaN obiekty na wartości null SQL?

  4. Wybierz losowy wiersz z tabeli PostgreSQL z ważonymi prawdopodobieństwami wierszy

  5. postgres:uaktualnić użytkownika do superużytkownika?