0

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

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

我想要这段代码而不做数据库事务(重新加载除外),它可能在一个块或一个 gem 中,......但我不想做任何回滚。

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

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

如果您需要更多信息,请告诉我。

谢谢

4

1 回答 1

0

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

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

# rails < 3.1
new_record = old_record.clone

#rails >= 3.1
new_record = old_record.dup
于 2012-12-21T10:12:06.690 回答