0

ユーザーを投稿にマッピングする単純な1対多の関係があります。スキーマの関連部分は次のとおりです。

create_table "users", :force => true do |t|
    t.string   "username"
    t.string   "first_name"
    t.string   "last_name"
    t.string   "email"
    t.string   "password"
    t.string   "status",     :default => "User"
    t.string   "img_url"
    t.text     "bio"
    t.integer  "num_posts",  :default => 0
    t.datetime "created_at",                     :null => false
    t.datetime "updated_at",                     :null => false
  end

  create_table "posts", :force => true do |t|
    t.string   "subject"
    t.text     "body"
    t.integer  "user_id"
    t.integer  "section_id"
    t.datetime "created_at", :null => false
    t.datetime "updated_at", :null => false
  end

モデルは次のとおりです。

class User < ActiveRecord::Base
  attr_accessible :bio, :email, :first_name, :img_url, :last_name, :num_posts, :password, :status, :username
  has_many :posts
  has_many :comments
end

class Post < ActiveRecord::Base
  attr_accessible :body, :section_id, :subject, :tag_ids, :user_id
  belongs_to :user
  belongs_to :section
  has_and_belongs_to_many :tags
  has_many :comments
end

Rails コンソールに移動し、User.create(attributes) を実行する新しいユーザーと Post.create(いくつかの属性) を実行する新しい投稿を作成し、それらをそれぞれ p1 と u1 に割り当ててから、p1.user = u1 を実行します。

p1.user を実行すると、u1 オブジェクトが取得されます。また、DB の u1 のキーに user_id キーが設定されていることがわかります。しかし、u1.posts を実行すると、空のリストが表示されます。特定のユーザーに属するすべての投稿のリストを取得するにはどうすればよいですか?

4

1 に答える 1