我试图在我的vehicle_controller中使用以下内容在我的JSON中包含一些额外的位:
# GET /vehicles/1
# GET /vehicles/1.json
def show
@vehicle = Vehicle.find(params[:id])
respond_to do |format|
format.json { @vehicle.to_json(:methods => [:product_applications_with_notes], :include => [:product_applications]) }
end
end
车辆模型同时具有方法:product_applications_with_notes
和关系has_many: :product_applications
。但是,当我向http://localhost:3000/vehicles/1
运行请求时,JSON输出如下:
{ " id":1, " make":" Acura", " model":" ALL", "年":2001年, " body_style":" Car", " created_at":" 2014-10-22T20:06:00.157Z", " updated_at":" 2014-10-22T20:07:09.827Z" }
它不显示包含的额外位。为什么呢?
答案 0 :(得分:0)
尝试覆盖Vehicle model中的as_json
方法。
类似的东西:
def as_json(options=nil)
json_hash = super(options)
json_hash[:product_applications] = product_applications
json_hash
end