rails更新时嵌套属性rails record_not_found

时间:2016-10-13 10:28:47

标签: ruby-on-rails ruby nested-attributes

我有两个模型,如:

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

你知道这个错误吗?我需要你的帮助。感谢

1 个答案:

答案 0 :(得分:0)

在此处发现您的错误

{
  "passengers_attributes": [
    {
      "name": "abc",
      "id": 5
    }
  ]
}

您无法在此处发送参数中的ID。无法修改ID,也可以手动插入。

此处您的客户没有身份标识为“5”的乘客。这就是您收到此错误的原因。