2011-09-21 44 views

回答

9

你也许可以做些像render :json => @coupons.to_json(:include => :company)的东西,至少它似乎与我在rails 2.3.8中的初始测试一起工作。

答案编辑使用:include => :company,而不是:include => :companies

+0

确实属于一个优惠券:公司(复数)?如果没有,请尝试以上,但:包括=>:公司 –

+0

你是对的,这是一个错字。它属于:公司 – sgrif

+0

我编辑了答案以显示此更改。 – William

3

如果你需要保持你的JSON尽可能紧凑,最好使用自定义的模型方法只返回你所需要的数据。我最终为父模型添加了自定义as_json方法,并使用methods选项返回相关对象数据的子集。使用include将包括相关模型的完整json序列化。

def as_json(options={}) 
    super(
    :only => [:id, :name], 
    :methods => [ 
     :organization_type_name, 
    ] 
) 
end 

def organization_type_name 
    self.organization_type.name 
end