我已經有了一個位於一個產品對象的內部歷史元素的數組:如何堅持對對象內的數組進行更改?
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"