我有一个模型分类
PaypalTransactionResponse(id: integer, paypal_transaction_id: uuid, response: text, created_at: datetime, updated_at: datetime)
class PaypalTransaction < ActiveRecord::Base
has_many :responses, class_name: "PaypalTransactionResponse", dependent: :destroy
belongs_to :response, class_name: "PaypalTransactionResponse", foreign_key: "response"
..
end
class PaypalTransactionResponse < ActiveRecord::Base
has_one :paypal_transaction
belongs_to :paypal_transaction
..
end
在 Rails 4.0.5 上,以下代码可以正常工作。在 Rails 4.1.1 上它没有
p = PaypalTransaction.first
p.responses.create(response: "some response text")
pry(#<PaypalTransaction>)> p.responses.create(response: "some response text")
SQL (0.4ms) INSERT INTO "paypal_transaction_responses" ("created_at", "paypal_transaction_id", "response", "updated_at") VALUES ($1, $2, $3, $4) RETURNING "id" [["created_at", "2014-05-10 13:54:37.512642"], ["paypal_transaction_id", "048267d9-2d47-4f0b-bc67-e206e296179d"], ["response", "some response text"], ["updated_at", "2014-05-10 13:54:37.512642"]]
ActiveModel::MissingAttributeError: can't write unknown attribute `paypal_transaction_response_id'
from /Users/me/.rvm/gems/ruby-2.1.1/gems/activerecord-4.1.1/lib/active_record/attribute_methods/write.rb:72:in `write_attribute'
此外,我没有paypal_transaction_response_id
属性。我想这里有一些不好的魔法,因为它试图猜测一些不存在的属性。
我在 Rails 4.1 更改日志中没有发现任何可能暗示此问题的更改。
我能做些什么?