2011-09-21 19 views

cevap

9

render :json => @coupons.to_json(:include => :company) gibi bir şey yapabileceksiniz, en azından başlangıçtaki testlerim 2.3.8'de çalıştım.

Cevap :include => :company yerine

+0

Kupon gerçekten şunlara ait: şirketler (çoğul)? değilse, yukarıdakileri deneyin, ancak: include =>: company –

+0

Haklısınız, bu bir yazım hatasıydı. Bu belongs_to: şirket – sgrif

+0

Bu değişikliği göstermek için cevabı düzenledim. – William

3

mümkün olduğunca kompakt olarak json tutmak gerekiyorsa :include => :companies kullanmak düzenlenmiş, bu sadece ihtiyacınız verileri döndürmek için özel model yöntemleri kullanmak en iyisidir. Üst modele özel bir as_json yöntemi ekledim ve ilgili nesnenin verilerinin alt kümelerini döndürmek için methods seçeneğini kullanıyorum. include kullanmak, ilgili modelin tam bir json serileştirmesini içerecektir.

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

def organization_type_name 
    self.organization_type.name 
end