我想更改关系列表而不保存它。
foo = Foo.first
foo.bars = []
foo.bars.reload
foo.bars
#=> [<Bar...>, ...]
我想这个代码没有做一个db事务(除了重新加载),它可能在一个块或一个gem,...但我不想做任何回滚。
我知道下面的代码可以工作,但我需要保持关系在不同的函数中进行修改和验证,所以这不是我想要的。
foo = Foo.first
@bars = foo.bars
@bars = []
foo.bars
#=> [<Bar...>, ...]
如果您需要更多信息,请与我们联系。
由于
答案 0 :(得分:0)
尝试使用另一个变量来克隆关系以便以后使用它。
使用两个单独的对象,您可以修改一个并使用第二个对象的关系,然后保存您需要的对象。
# rails < 3.1
new_record = old_record.clone
#rails >= 3.1
new_record = old_record.dup