Ruby on Rails:更新数据库中的布尔记录

时间:2013-09-14 23:00:55

标签: ruby-on-rails database ruby-on-rails-3 ruby-on-rails-3.2 boolean

如果我的数据库设置为false,那么更新数据库中的布尔值是什么最佳做法?

我可以在控制台上执行此操作:

>> u = User.find_by_id(1)

接下来我该怎么做?

由于

2 个答案:

答案 0 :(得分:11)

如果你想切换布尔值:

u.<attribute>.toggle!  # Toggles the boolean and saves without validations
u.<attribute>.toggle   # Toggles the boolean and does not save

如果要设置布尔值:

u.<attribute> = [true|false]

如果您想立即更新布尔值:

u.update_column(:<attribute>, [true|false])  # Doesn't update timestamps or call callbacks
u.update_attribute(:<attribute>, [true|false])  # Updates timestamps and triggers any callbacks

答案 1 :(得分:0)

>> u.boolean_property = false
>> u.save

其中boolean_property是您要设置为false的属性的名称。

这是最简单的方法(只是直接设置),还有其他方法,具体取决于您的需求: http://www.davidverhasselt.com/2011/06/28/5-ways-to-set-attributes-in-activerecord/