Ответ 1
Вам просто нужно быть более осторожным с порядком методов в этом случае:
Student.includes(:teacher).find(12)
Я пытаюсь сделать что-то подобное, но он не работает. Как я могу сделать это в Rails 3?
Student.find(12).includes(:teacher)
Вам просто нужно быть более осторожным с порядком методов в этом случае:
Student.includes(:teacher).find(12)
Старый вопрос, который я знаю, но на всякий случай это помогает кому-то...
Выполнение чего-то типа @student = Student.includes(:teacher).where(:id => 12)
возвращает массив, и поэтому использование чего-то типа @student.id
не работает.
Вместо этого вы можете сделать:
@student = Student.includes(:teacher).where(:id => 12).first
Хотя Student.includes(:teacher).find(12)
должен работать, но вы можете использовать версию where
, если вам нужно искать другие/несколько полей.
Student.includes(:teacher).where(:id => 12)
должен работать.
Можем ли мы увидеть ваши модели?
Вы можете попробовать "where" вместо "найти":
Student.includes(:teacher).where(:id => 12)