【发布时间】:2015-09-26 15:17:28
【问题描述】:
如何在不删除记录的情况下解除记录与关联的关联?
考虑以下场景,Game 有很多 rules,rule 有很多 Games 所以
>> game.rules #=> [#<rule id: 1, ...>, #<rule id:2, ...>]
我如何在不删除它的情况下将 id 2 的规则与 game 解除关联,所以关系最终是这样的:
>> game.rules #=> [#<rule id: 1, ...>]
我尝试将更新后的数组重新分配给关系,但这会阻止关联以某种方式保存未来的插入。我相信不能将数组分配给关系。
这是我尝试过的:
>> tmp = game.rules.to_a
>> tmp.delete(rule_of_id2)
>> game.rules = tmp
^D
但是,未来的插入不会持续存在。
>> games.rules << new_rule_of_id3
^D
>> game.rules #=> [#<rule id: 1, ...>
它应该返回#=> [#<rule id: 1, ...>, #<rule id: 3, ...>]
如何在不明确删除rule 的情况下更新关系。
【问题讨论】:
标签: ruby-on-rails postgresql activerecord