2014-10-30 30 views
0

大家好!我有一個模型:Mongoid fields auto sum

class Model 
    include Mongoid::Document 

field :price1, :type =>Integer 
field :price2, :type =>Integer 
field :price3, :type =>Integer <== I want this field to be always result of price1 + price2 
end 

我的問題是:我怎麼能:price3總是自動填充price1 + price2的總和。 非常感謝您的幫助!

回答

0

您想使用callbacks界面。有各種回調暴露,如:

require "mongoid" 
require "pp" 

Mongoid.configure.connect_to("test") 

class Model 
    include Mongoid::Document 

    field :price1, type: Integer 
    field :price2, type: Integer 
    field :price3, type: Integer 

    store_in collection: "mymodel" 

    before_save do |document| 
    document.price3 = document.price1 + document.price2 
    end 

end 



model = Model.new 

model.price1 = 2 
model.price2 = 3 

model.save 

這導致「價格3」字段被設置爲其他兩個值的總和。

+0

非常感謝! – 2014-10-31 08:59:52