1

データベースに保存されたレコード A がある場合、保存されていない新しく作成されたレコード B に置き換えたいとします。したがって、B はデータベースに保存できますが、ID は A からのものになります (そして A は置き換えられます)。これはRails Active Recordで可能ですか?

PS この背後にある理由は、何らかの条件でオブジェクトをマージする必要があり、オブジェクトを構築するにはインターネットのフェッチ/解析が必要だからです。したがって、BI の解析に時間が使用されている場合、A に対して再度解析するのを防ぎたいのですが、B に置き換えます。

4

2 に答える 2

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 に答える
2

このようなことを試してください(このコードはテストしていません):

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