Я пытаюсь понять, что мне нужно сделать, чтобы использовать ассоциации в своих представлениях. Что-то не так, когда ассоциация представляет собой отношение has_one.
У меня есть модели под названием Project и Package. Ассоциации таковы:
Project has_one :package
Package belongs_to :project
В консоли могу написать:
p = Project.where(id: 26)
Это дает мне проект. Затем я пишу:
p.package
Я ожидаю, что это даст мне соответствующий пакет. Вместо этого я получаю длинное сообщение об ошибке, которое начинается со следующих строк:
NoMethodError: undefined method `package' for #<Project::ActiveRecord_Relation:0x007fb275c17698>
Я не знаю, что означает это сообщение. Я особенно запутался, потому что могу написать:
p = Package.find_by(project_id:26)
Это дает мне правильный пакет.
p = Package.find_by(project_id:26)
Package Load (1.8ms) SELECT "packages".* FROM "packages" WHERE "packages"."project_id" = $1 LIMIT 1 [["project_id", 26]]
=> #<Package id: 25, project_id: 26, created_at: "2016-08-18 23:16:06", updated_at: "2016-08-24 05:11:11", has_gallery: nil>
Почему я не могу найти пакет, написав в консоли p.package?
Я видел это сообщение, но не понял суть происходящего.