0

User、Blog、Post の 3 つのモデルがあるとします。私のユーザーモデルには次のものがあります:

User Model
  has_one :blog
  has_many :posts through: :blog


Blog Model
  belongs_to :user
  has_many :posts

Post 
  belongs_to :blog

工場を作るときは、次のようなことができます。

FactoryGirl.define do
  factory :post do
    title "something"
    content "long text"
    blog 
  end
end

ブログに属する投稿を作成します。私が見ていないのは、FactoryGirl がユーザーを作成し、そのユーザーに属するブログを作成し、そのブログ/ユーザーに属する投稿を作成するように、:post に何を入れるべきかです。FactoryGirl のドキュメントには、これに対処するものは何もありませんでした。

4

1 に答える 1

1
FactoryGirl.define do

  factory :post do
    title "something"
    content "long text"
    blog 
  end

  factory :blog do
    user
    # blog attributes
  end

  factory :user do
    # user attributes
  end
end

それで

@post = FactoryGirl.create(:post)
@blog = @post.blog
@user = @post.blog.user
于 2012-10-15T19:06:29.477 に答える