2013-07-16 15 views
5

モデルレベルでこの構造体を追加するためのまともな方法を見つけることができませんでした。ActiveRecordに "ON DUPLICATE KEY UPDATE"をどのように組み込むことができますか?

主な目的は "insert_or_update"ですが、ActiveRecordレイヤからのread => check exist => writeまたはupdateはしたくありません。

任意のポインタ?

関連する廃止予定のコードが見つかりました。

http://apidock.com/rails/ActiveRecord/Base/create_or_update http://apidock.com/rails/ActiveRecord/Base/update_attributes

答えて

2

あなたはのように、どこと組み合わせることができ、first_or_initialize後にしている:あなたはそれを保存する前に、インスタンスを操作する必要がない場合は

instance = Model.where(:attr1 => 'value1').first_or_initialize(:attr2 => 'value2') 
# do something with instance 
instance.save 

first_or_create

+18

これは同じ原子保証を提供しないので、これは「重複キー更新」とは異なります – ghempton

関連する問題