Mongoid - 为至少一个文档将字段设置为true

时间:2013-02-18 09:53:47

标签: ruby sinatra mongoid

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

如果执行任何操作,我怎样才能确保将其设置为true:create,update,upsert ......?我想对每个人创建一个回调是不对的。

1 个答案:

答案 0 :(得分:2)

创建&之后

after_save always runs更新

所以你可以这样做:

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

NB./ update_column should not fire the after_save again