我有两个模型,如:
class Customer < ActiveRecord::Base
has_many :passengers
accepts_nested_attributes_for :passengers, allow_destroy: true
end
class Passenger < ActiveRecord::Base
belongs_to :customer
end
customer_params
包含:
:name,...
:passengers_attributes: [:id, :name, :_destroy]
并通过passengers_attributes
更新customer
(id = 1),如
{
"passengers_attributes": [
{
"name": "abc",
"id": 5
}
]
}
乘客"abc"
是新记录
当我运行customer.update_attributes!(customer_params)
时,会引发错误ActiveRecord::RecordNotFound: Couldn't find Passenger with ID=5 for Customer with ID=1
你知道这个错误吗?我需要你的帮助。感谢
答案 0 :(得分:0)
在此处发现您的错误
{
"passengers_attributes": [
{
"name": "abc",
"id": 5
}
]
}
您无法在此处发送参数中的ID。无法修改ID,也可以手动插入。
此处您的客户没有身份标识为“5”的乘客。这就是您收到此错误的原因。