2011-09-21 8 views

risposta

9

Potrebbe essere possibile fare qualcosa come render :json => @coupons.to_json(:include => :company), almeno sembra aver funzionato con i miei test iniziali su binari 2.3.8.

risposta modificato per utilizzare :include => :company piuttosto che :include => :companies

+0

Un coupon appartiene davvero a: aziende (plurale)? se no, prova quanto sopra ma: include =>: azienda –

+0

Hai ragione, quello era un errore di battitura. Appartiene alla società – sgrif

+0

Ho modificato la risposta per mostrare questo cambiamento. – William

3

Se è necessario mantenere la vostra JSON il più compatto possibile, è meglio utilizzare metodi modello personalizzato per restituire solo i dati necessari. Ho finito per aggiungere un metodo personalizzato as_json al modello principale e l'utilizzo dell'opzione methods per restituire sottoinsiemi dei dati dell'oggetto correlato. L'utilizzo di include includerà una serializzazione json completa del modello correlato.

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

def organization_type_name 
    self.organization_type.name 
end