我们怎样才能在ActiveRecord中使用“ON DUPLICATE KEY UPDATE”构造?

时间:2013-07-16 19:43:46

标签: ruby-on-rails activerecord

找不到任何在模型级别添加此构造的正确方法。

主要目的是做“insert_or_update”,但不想做read => check existence =>从ActiveRecord层写入或更新。

任何指针?

虽然找到了一些相关的弃用代码。

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

1 个答案:

答案 0 :(得分:0)

您在first_or_initialize之后,可以将其与where结合使用,如:

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

如果您在保存之前不必操作该实例,也可以使用first_or_create