自分のビューで関連付けを使用するために必要なことを理解しようとしています。関連がhas_one関係の場合には何か問題があります。Rails - has_one関連がある場所でコンソールを検索する方法
私はProject and 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)
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を見ましたが、何が起こっているのかを理解していません。
に動作しますこれは、配列の最初の要素に
package
を呼び出しますあなたは外来のキーを呼び出し、どのテーブルに置いたのですか – Chris@Chris - どういう意味ですか?プロジェクトにはIDがあり、パッケージはプロジェクトに属しているので、パッケージテーブルにはproject_idキーがあります – Mel