railsチュートリアルに取り組んでおります。モデル同士の関連付けに関して質問です。
user = User.first
user.following をrailsコンソールで行うと、
#<ActiveRecord::Associations::CollectionProxy [#<User id: 3, name: "Dr. Janie Johnston", email: "example-2@railstutorial.org", created_at: "2020-02-23 10:48:56", updated_at: "2020-02-23 10:48:56", password_digest: "$2a$10$58GliEhsSn7dJ4JUZQxVcOijFrBHqYH0dqJmIl3zyCo...", remember_digest: nil, admin: false, activation_digest: "$2a$10$R2FOJBJSOV/ZzBqrt69SDOolXpk.tnMWnhOTZi99ZfA...", activated: true, activated_at: "2020-02-23 10:48:56", reset_digest: nil, reset_sent_at: nil>,
のようにフォローしているユーザのインスタンス?が出ますが、followingはfollowedカラムのコレクションであり、followedカラムはユーザーのidが入るので、id(数字)のコレクションが出るものだと思っていました。
なぜなら、followingを行う際の active_relationshipは follower_idを外部キーとして指定しているので、followedカラムに入っている値をインスタンスとして認識できると考えていなかったからです。
なぜfollowingを行うとインスタンスがとり出せるのかを理解したいです。よろしくお願いいたします。
該当コード
user
1has_many :active_relationships, class_name: "Relationship", 2 foreign_key: "follower_id", 3 dependent: :destroy 4 5has_many :passive_relationships, class_name: "Relationship", 6 foreign_key: "followed_id", 7 dependent: :destroy 8 9has_many :following, through: :active_relationships, source: :followed 10 11has_many :followers, through: :passive_relationships, source: :follower
relationship
1 belongs_to :follower, class_name: "User" 2 belongs_to :followed, class_name: "User" 3 validates :follower_id, presence: true 4 validates :followed_id, presence: true
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。