我有一个属于用户的 House 模型。 众议院 has_many 汽车。在我的模型中,我已经声明了必要的 accepts_nested_attributes_for ,并且我的嵌套属性具有相应的_attributes和id字段。
我希望能够将汽车模型与众议院取消关联,而不是用户。
假设我有一个保存的 House 对象:
"house" => {"owner" => "bob, "car_attributes" => [{"id" => 1, "type" => "toyota"},{"id" => 2, "type" => "honda"}]}
我想从众议院删除(但不删除)汽车对象并更新它,使其如下所示:
"house" => {"owner" => "bob, "car_attributes" => [{"id" => 1, "type" => "toyota"}]}
显然,当我致电@house.update_attributes({"owner" => "bob, "car_attributes" => [{"id" => 1, "type" => "toyota"}]})
时,belongs_to
关联不会被删除。是否有任何简单的方法可以将汽车对象与其父对象解除关联?
通过Rails文档,有一个集合方法delete
就可以实现-i.e将父外键设置为null
。问题是,我必须在客户端标记我想要解除关联的每个对象,将其发送出去,然后遍历每个嵌套属性并在必要时手动调用delete()
,这对我来说似乎不是很困难。
是否有更简单的方法通过在rails中解除(不破坏)其嵌套属性来更新父模型?