我已经有了一个位于一个产品对象的内部历史元素的数组:如何坚持对对象内的数组进行更改?
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"