gpt4 book ai didi

ruby-on-rails - 如何停止这些 PG::ProtocolViolation 错误?

转载 作者:行者123 更新时间:2023-11-29 12:21:23 31 4
gpt4 key购买 nike

我的方法是:

class Survey < ActiveRecord::Base
def create_matching_batteries
unless inactive?
update_column :battery_id, nil unless battery
@battery = Battery.where(:review_id => review.id, :question_id => question.id).first_or_create
@battery.surveys << self
end
end
end

当我运行 @survey.create_matching_batteries 时,我得到了这个:

Survey Load (5.2ms)  SELECT "surveys".* FROM "surveys" WHERE "surveys"."competitor_id" = $1 AND "surveys"."id" = $1 ORDER BY "surveys"."id" ASC LIMIT 1  [["competitor_id", 248], ["id", 15183]]
D, [2014-01-21T22:28:08.830446 #3392] DEBUG -- : Survey Load (5.2ms) SELECT "surveys".* FROM "surveys" WHERE "surveys"."competitor_id" = $1 AND "surveys"."id" = $1 ORDER BY "surveys"."id" ASC LIMIT 1 [["competitor_id", 248], ["id", 15183]]
PG::ProtocolViolation: ERROR: bind message supplies 2 parameters, but prepared statement "a15" requires 1
: SELECT "surveys".* FROM "surveys" WHERE "surveys"."competitor_id" = $1 AND "surveys"."id" = $1 ORDER BY "surveys"."id" ASC LIMIT 1
E, [2014-01-21T22:28:08.830528 #3392] ERROR -- : PG::ProtocolViolation: ERROR: bind message supplies 2 parameters, but prepared statement "a15" requires 1
: SELECT "surveys".* FROM "surveys" WHERE "surveys"."competitor_id" = $1 AND "surveys"."id" = $1 ORDER BY "surveys"."id" ASC LIMIT 1
(0.3ms) ROLLBACK
D, [2014-01-21T22:28:08.833655 #3392] DEBUG -- : (0.3ms) ROLLBACK
ActiveRecord::StatementInvalid: PG::ProtocolViolation: ERROR: bind message supplies 2 parameters, but prepared statement "a15" requires 1
: SELECT "surveys".* FROM "surveys" WHERE "surveys"."competitor_id" = $1 AND "surveys"."id" = $1 ORDER BY "surveys"."id" ASC LIMIT 1
from /Users/steven/.rvm/gems/ruby-2.1.0/gems/activerecord-4.0.2/lib/active_record/connection_adapters/postgresql_adapter.rb:786:in `get_last_result'

在“Railspeak”而非“Postgrespeak”中,ActiveRecord::StatementInvalid: PG::ProtocolViolation: ERROR: bind message supplys 2 parameters, but prepared statement "a15"requires 1 是什么意思?它如何帮助我调试我的方法?

我的环境:

$ rails -v
Rails 4.0.2
$ ruby -v
ruby 2.1.0p0 (2013-12-25 revision 44422) [x86_64-darwin12.0]
$ psql --version
psql (PostgreSQL) 9.3.1

最佳答案

禁用准备好的语句

production:
adapter: postgresql
prepared_statements: false

结帐http://edgeguides.rubyonrails.org/configuring.html

关于ruby-on-rails - 如何停止这些 PG::ProtocolViolation 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21256973/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com