1

我希望数据库中始终至少有一个文档,其标题为“ selected”的字段设置为 true。我怎么做?很可能我必须使用回调,但是哪一个:before (or after) _create, _upsert, _update

以及如何确保无论执行什么操作都会将其设置为 true:创建、更新、更新插入……?我想为他们每个人创建一个回调是不正确的。

4

1 回答 1

2

after_save 总是在创建和更新之后运行

所以你可以这样做:

after_save do |your_class|
  your_class.update_column(:selected, true) unless YourClass.where(selected: true).exists?
end

注意。/ update_column 不应再次触发 after_save

于 2013-02-18T13:43:45.830 回答