1
我想有總是是至少一個數據庫文件,其中有一個名爲場「selected
」設置爲true。我怎麼做?最大的可能是我必須使用回調,但哪一個:before (or after) _create, _upsert, _update
?Mongoid - 設置字段爲true至少一個文檔
我怎麼能保證它會被設置爲true任何操作執行:創建,更新,更新插入...?我想這不會是正確創建回調爲他們每個人。
我想有總是是至少一個數據庫文件,其中有一個名爲場「selected
」設置爲true。我怎麼做?最大的可能是我必須使用回調,但哪一個:before (or after) _create, _upsert, _update
?Mongoid - 設置字段爲true至少一個文檔
我怎麼能保證它會被設置爲true任何操作執行:創建,更新,更新插入...?我想這不會是正確創建回調爲他們每個人。
after_save always runs後創建&更新
,所以你可以這樣做:
after_save do |your_class|
your_class.update_column(:selected, true) unless YourClass.where(selected: true).exists?
end
不會有無限循環? – 2013-02-18 15:59:46
好一點。有對NB./ http://stackoverflow.com/questions/632742/how-can-i-avoid-running-activerecord-callbacks/7386222#7386222 – gef 2013-02-18 16:09:46
不會有無限循環的鏈接? – 2013-02-19 01:18:24