###railsチュートリアル2章のモデル間の関連付けについての質問です。
UserモデルとMicropostモデルの関連付けを行いました。
関係性
親 Userモデル
子 Micropostモデル
主キーはUserモデルのidで、外部キーがMicropostモデルのuser_idとなっています。
それぞれのモデルで以下のように宣言しています。
micropost.rb
1class Micropost < ApplicationRecord 2 belongs_to :user 3end
user.rb
1class User < ApplicationRecord 2 has_many :microposts 3end
###Railsのconsoleを使って、ユーザーとマイクロポストの関連付けを確認しました。
first_userに代入されたデータが最終行のコードで表示させたいです。
$first_user = User.first $first_user.microposts $micropost = first_user.microposts.first $micropost.user
チュートアルでは最終的にfirst_userのデータが表示されています。
しかし、以下のエラーが出ました。
Micropost Load (0.1ms) SELECT "microposts".* FROM "microposts" WHERE "microposts"."user_id" = ? LIMIT ? [["user_id", 1], ["LIMIT", 11]] NoMethodError (undefined method `user' for #<Micropost::ActiveRecord_Associations_CollectionProxy:0x000000000433b900>) Did you mean? super
試しに以下のコードを打つと、エラーが出ず、first_micropostのデータが表示されました、
$first_micropost = Micropost.first $first_micropost.user
userメソッドが定義されていない訳ではないと考えています。
二つのコードの違いは何なのでしょうか。
知識不足ですみません。教えていただけると嬉しいです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2019/12/12 11:20
2019/12/12 11:23
2019/12/12 13:27