2011-09-21 12 views

Odpowiedz

9

Być może będziesz w stanie zrobić coś takiego jak render :json => @coupons.to_json(:include => :company), przynajmniej wydaje się, że zadziałało z moim początkowym testowaniem w szynach 2.3.8.

Odpowiedź edytowany używać :include => :company zamiast :include => :companies

+0

Czy kupon naprawdę należy do: firm (liczba mnoga)? jeśli nie, spróbuj powyższego, ale: include =>: company –

+0

Masz rację, to był literówka. Jest to: firma – sgrif

+0

Edytowałem odpowiedź, aby pokazać tę zmianę. – William

3

Jeśli trzeba zachować swój json jako zwarta, jak to możliwe, to najlepiej użyć metod niestandardowych modeli wrócić tylko potrzebne dane. Skończyło się na dodaniu niestandardowej metody as_json do modelu nadrzędnego i użyciu opcji methods do zwrócenia podzbiorów danych powiązanych obiektów. Korzystanie z include będzie zawierało pełną serializację json powiązanego modelu.

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

def organization_type_name 
    self.organization_type.name 
end