製品オブジェクト内にある一連の履歴項目があります。
class Product
include Mongoid::Document
include Mongoid::Paranoia
include Mongoid::Timestamps
...
embeds_many :modification_histories
私のビジネス ルールは、最後の 120 件の履歴のみを保存することです。したがって、新しいものが追加されると、古いものをソートして配列をポップします。
if self.modification_histories.size >= 120
self.modification_histories.sort! { |x,y| y.date <=> x.date }
while self.modification_histories.size >= 120
self.modification_histories.pop
end
end
これは正常に機能しているようです。そのメソッドの呼び出しの後にブレークポイントを配置しました。履歴配列は適切なサイズです。しかし、オブジェクト ( self.save!
) を保存して再ロードすると、履歴配列は変更されていません。何が間違っているのかわかりません。
gem "mongoid", "~> 2.4"