更改关系列表而不保存

时间:2012-12-20 12:31:04

标签: ruby-on-rails model-associations

我想更改关系列表而不保存它。

foo = Foo.first
foo.bars = []
foo.bars.reload
foo.bars
#=> [<Bar...>, ...]

我想这个代码没有做一个db事务(除了重新加载),它可能在一个块或一个gem,...但我不想做任何回滚。

我知道下面的代码可以工作,但我需要保持关系在不同的函数中进行修改和验证,所以这不是我想要的。

foo = Foo.first
@bars = foo.bars
@bars = []
foo.bars
#=> [<Bar...>, ...]

如果您需要更多信息,请与我们联系。

由于

1 个答案:

答案 0 :(得分:0)

尝试使用另一个变量来克隆关系以便以后使用它。

使用两个单独的对象,您可以修改一个并使用第二个对象的关系,然后保存您需要的对象。

# rails < 3.1
new_record = old_record.clone

#rails >= 3.1
new_record = old_record.dup