【发布时间】:2016-03-21 08:45:18
【问题描述】:
我的主要目标是在正确创建新记录后删除旧记录。我尝试将其分配给变量并使用#dup 方法。请看示例代码:
def my_method
old_items = @user.items.dup
new_items = @user.items.new(item_params) # one or more
# confusing part
old_items.destroy_all if new_items.save
end
我想销毁 old_items,但是当我创建 new_items 时,它们是 old_items == new_items。为什么重复#dup 在这里不起作用?如何拆分和删除旧记录?我还尝试了一个事务(如果 new_items 无效则回滚),这也不起作用。
【问题讨论】:
-
为什么不尝试使用
deep_dup而不是dup。
标签: ruby-on-rails ruby activerecord destroy