One-liner在Ruby on Rails中搜索,以改变数据库中的属性

时间:2013-02-27 16:44:35

标签: ruby-on-rails ruby rails-activerecord

在Ruby on Rails中,对于ActiveRecord class MySettings,是否有更优雅的选择

s = MySettings.last
s.do_updates = true
s.save

在一行?

3 个答案:

答案 0 :(得分:5)

使用update_attributes

  MySettings.last.update_attributes :do_updates => true

答案 1 :(得分:2)

update_attributes

MySettings.last.update_attributes(:do_updates => true)

答案 2 :(得分:2)

虽然我通常会推荐其他人提出的update_attributes,但这是使用update_column取代update_attribute的完美情况。 在rails 4.x中删除了update_attribute,并将在以后的3.2.x版本中发出弃用警告。

MySettings.last.update_column(:do_updates, true)

update_attributes不同,update_column不执行验证或回调。如果您需要ActiveRecord回调,请务必使用update_attrbutes