1

如果我有记录 A 已保存在数据库中,那么我想用新创建的尚未保存的记录 B 替换它。所以 B 然后可以保存在数据库中,但使用来自 A 的 id (并且 A 被替换)。这在 Rails Active Record 中可行吗?

PS这背后的原因是我需要通过某种条件合并对象,并且构造一个对象需要一些互联网获取/解析。因此,如果使用时间来解析 BI,则希望防止再次为 A 解析它,而是将其替换为 B。

4

2 回答 2

2

尝试这样的事情(没有测试这段代码):

a = Model.find(params[:id])
b = Model.new(params)
a.update_attributes(b.attributes)
于 2012-05-08T06:05:51.923 回答
2

你可以这样做:

a = A.find(1)
b = B.new

# Modify b

a.update_attributes(b.attributes.delete_if{ |k,v| %w(id created_at updated_at).include?(k) })
于 2012-05-08T06:07:06.993 回答