Sto provando a fare qualcosa di simile, ma non funziona. Come lo farei in Rails 3?Come trovare find() con includes() in Rails 3
Student.find(12).includes(:teacher)
Sto provando a fare qualcosa di simile, ma non funziona. Come lo farei in Rails 3?Come trovare find() con includes() in Rails 3
Student.find(12).includes(:teacher)
Devi solo essere più attenti con l'ordine dei metodi in questo caso:
Student.includes(:teacher).find(12)
Si potrebbe provare a "dove" al posto di "trovare":
Student.includes(:teacher).where(:id => 12)
; (a parte questo non funziona né – 99miles
Ho provato qualcosa di simile su uno dei miei modelli e ha funzionato in Rails 3, sei sicuro di avere le relazioni "belongs_to" e "has_many"? –
Sì, è molto strano b/c funziona bene quando inserisco l'inclusione nel metodo to_json, quindi sembra che tutto sia impostato bene . – 99miles
Student.includes(:teacher).where(:id => 12)
dovrebbe funzionare.
Possiamo vedere i tuoi modelli?
vecchia questione che conosco ma solo nel caso che questo aiuta qualcuno ...
fare qualcosa di simile @student = Student.includes(:teacher).where(:id => 12)
restituisce un array e così poi usando qualcosa come @student.id
non funziona.
Invece si potrebbe fare:
@student = Student.includes(:teacher).where(:id => 12).first
Anche se Student.includes(:teacher).find(12)
dovrebbe funzionare, ma è possibile utilizzare la versione where
se avete bisogno di cercare da altri più campi /.
che sembra non funzionare. – 99miles
Bene cosa sta facendo? Puoi sempre usare il vecchio metodo: 'Student.find (12,: include =>: teacher)' –
Ottiene il record con l'ID 12, ma senza gli include. Il "vecchio" modo non funziona più in 3.0. Posso farlo funzionare in questo modo Student.find_by_id (12) .to_json (: include =>: teacher) ma non è quello che voglio – 99miles