2015-02-07 120 views
0

我有两个模型PostImage。如果没有images,则无法创建帖子。工厂女孩has_many当孩子需要

class Post < ActiveRecord::Base 
    has_many :images 
    validates :images , presence: true 
end 

class Image < ActiveRecord::Base 
    belongs_to :post 
    validates :post_id , presence: true 
    validates :name , presence: true 
end 

现在,我想设置为factory girlpostimage。我很好,image工厂的女孩,但不能设置post工厂的女孩,它应该有图像。

#image 
FactoryGirl.define do 
    factory :image do 
    name "something" 
    post_id 121 
    end 
end 

#post 
FactoryGirl.define do 
    factory :post do 
    title "foo bar" 
    after(:create) do |post,evaluator| 
     create_list :image , 3 , post: post 
    end 
    end 
end 

但我还是结束了验证错误的postimages should be present。这个错误确实有道理,但是如何解决这个问题。

回答

1

这对我的作品

FactoryGirl.define do 
    factory :post do 
    title "foo bar" 
    after(:build) do |post,evaluator| 
     post.images << (build_list :image , 3 , post: post) 
    end 
    end 
end