PostgreSQL
 sql >> Cơ Sở Dữ Liệu >  >> RDS >> PostgreSQL

Giao thức Vi phạm:LỖI:liên kết thông báo cung cấp 0 tham số, nhưng câu lệnh đã chuẩn bị yêu cầu 1

Trong trường hợp của bạn, có vẻ như do bạn đang sử dụng @comments.to_sql bạn đang kéo câu lệnh đã chuẩn bị đó vào lựa chọn con của mình mà không đưa vào tham số cho nó. Bạn có thể thử chỉ bao gồm dữ liệu nhận xét như sau:

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

Vấn đề này dường như cũng đến từ cách mà các câu lệnh đã chuẩn bị được xây dựng trong Rails và có thể do một trong hai vấn đề trong chính Rails gây ra (Vấn đề Rails # 15920 , đã được khắc phục trong Rails 4.2) hoặc do các vấn đề với các viên ngọc khác nhau giúp tạo truy vấn (ví dụ:Rails issue # 20236 ) hoặc thậm chí bằng cách bạn xác định các liên kết mô hình của mình (Các vấn đề về đường ray # 12852 ).

Có thể vô hiệu hóa hoàn toàn các câu lệnh đã chuẩn bị bằng cách thêm một lệnh vào database.yml của bạn tệp:

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

Nhưng trước tiên, bạn có thể muốn kiểm tra và đảm bảo rằng bạn không sử dụng các tham số không cần thiết trong các liên kết mô hình của mình như sau:

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

... chỉ nên bỏ đi foreign_key , như thế này:

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. Làm cách nào để thực thi tính duy nhất giống tập hợp giữa nhiều cột?

  2. tách tên tệp khỏi đường dẫn trong postgres

  3. Sau khi nhập dữ liệu trong PostgreSQL, giá trị khóa trùng lặp vi phạm ràng buộc duy nhất

  4. Sử dụng Docker để khởi chạy ứng dụng web, không thể kết nối với Postgresql DB?

  5. Tôi đã cố gắng thay đổi postgresql md5 thành scram-sha-256 và tôi nhận được xác thực mật khẩu FATAL không thành công