如果我有已保存在数据库中的记录A,那么我想用新创建的记录B替换它尚未保存。因此B可以保存在数据库中,但ID为A(并且A被替换)。这是否可以在Rails Active Record中使用?
P.S。这背后的原因是我需要通过某种条件合并对象,并且构造对象需要一些互联网提取/解析。因此,如果时间用于解析B,我希望防止再次为A解析它,但将其替换为B.
答案 0 :(得分:2)
尝试这样的事情(没有测试此代码):
a = Model.find(params[:id])
b = Model.new(params)
a.update_attributes(b.attributes)
答案 1 :(得分: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) })