【发布时间】:2019-07-30 08:11:24
【问题描述】:
Model.find(ids).each { |model| model.is_active = false } unless ids.empty?
这里,model.save 方法是否必要?因为没有它,它也可以工作。
列是这样定义的
t.integer :is_active, limit: 1
【问题讨论】:
-
取决于
is_active=的实现方式。你说它在没有明确调用save的情况下工作,所以is_active=似乎会保留更改本身。 -
t.integer :is_active, 限制:1
-
嗯,ActiveRecord 不会立即将更改持久化到模型中(这会导致无数数据库查询)。必须有其他事情发生,并且超出了您的上述代码。
-
tinyint 到 boolean 的转换有关系吗?
标签: ruby ruby-on-rails-3 activerecord