0

假设我有三个模型:用户、博客和帖子。我的用户模型将具有:

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

这会创建一个属于博客的帖子。我没有看到我应该放入的内容 :post 以便 FactoryGirl 创建用户,然后创建属于该用户的博客,然后创建属于该博客/用户的帖子。我并没有在 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 回答