【发布时间】:2016-08-27 07:59:36
【问题描述】:
我试图弄清楚我需要做什么才能在我的视图中使用关联。关联是 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找不到包?
我见过this post,但我不明白发生了什么。
【问题讨论】:
-
你是如何调用你的外键的,你把它们放在哪个表中
-
@Chris - 你是什么意思?项目有一个 id 并且由于包属于项目,所以包表中有一个 project_id 键
标签: ruby-on-rails rails-console