Próbuję zrobić coś takiego, ale to nie działa. Jak to zrobić w Rails 3?Jak to zrobić() z włączeniami() w Railsach 3
Student.find(12).includes(:teacher)
Próbuję zrobić coś takiego, ale to nie działa. Jak to zrobić w Rails 3?Jak to zrobić() z włączeniami() w Railsach 3
Student.find(12).includes(:teacher)
Po prostu trzeba być bardziej ostrożnym z rzędu tych metod w tym przypadku:
Student.includes(:teacher).find(12)
Można spróbować „gdzie” zamiast „znaleźć”:
Student.includes(:teacher).where(:id => 12)
; (nie., Który nie działa albo – 99miles
Próbowałem czegoś podobnego na jednym z moich modeli i działało w Railsach 3, czy jesteś pewien, że masz skonfigurowane relacje "belongs_to" i "has_many"? –
Tak, to bardzo dziwne b/c działa dobrze, gdy umieściłem include w metodzie to_json, więc wygląda na to, że wszystko jest ustawione dobrze . – 99miles
Student.includes(:teacher).where(:id => 12)
powinien działać.
Czy możemy zobaczyć Twoje modele?
Old pytanie wiem, ale tylko w przypadku, gdy ktoś pomaga ...
Uprawiając jak @student = Student.includes(:teacher).where(:id => 12)
zwraca tablicę, a następnie przy użyciu więc coś takiego jak @student.id
nie działa.
Zamiast tego można zrobić:
@student = Student.includes(:teacher).where(:id => 12).first
Chociaż Student.includes(:teacher).find(12)
powinny działać, ale można korzystać z wersji where
jeśli trzeba szukać innych wielu pól /.
, które wydaje się nie działać. – 99miles
Co się dzieje? Zawsze możesz użyć starego sposobu: 'Student.find (12,: include =>: teacher)' –
Otrzymuje rekord o identyfikatorze 12, ale bez załączników. "Stary" sposób nie działa już w wersji 3.0. Mogę go uruchomić w ten sposób Student.find_by_id (12) .to_json (: include =>: teacher), ale to nie jest to, co chcę – 99miles