我正在使用Rails 3,这是我的模型
class LineItem < ActiveRecord::Base
attr_reader :price
belongs_to :product
def price
self.product.price * self.quantity
end
def as_json(options = {})
super(:include => [:product])
end
end
以上代码有效。但是现在我希望我的json除了我得到的其他值之外还有price
的值。
我如何做到这一点?
答案 0 :(得分:0)
您可以使用:methods
:
def as_json(options = {})
super(options.merge(:include => [:product], :methods => [:price]))
end
您可能希望适当关注:include
中的任何传入:method
和options
设置。所以你可能想要使用block form of merge
:
EXTRAS = { :include => [:product], :methods => [:price] }
def as_json(options = { })
super(options.merge(EXTRAS) { |k,ov,nv| ov.is_a?(Array) ? ov + nv : nv }
end