2014-11-21 63 views
1

我有一個Userhas_many在Rails 4.1.6中的職位。繼Getting Started page for Factory Girl,我已經創建了這些工廠:無法建立與工廠女孩has_many關聯

factory :post do 
    skip_create 
    title 'foo bar' 
    user 
end 

factory :user do 
    skip_create 
    id 1 
    username 'alice' 

    factory :user_with_posts do 
    skip_create 

    transient do 
     posts_count 5 
    end 

    after(:build) do |user, evaluator| 
     build_list(:post, evaluator.posts_count, user: user) 
    end 
    end 
end 

但調用build(:user_with_posts)返回User與空posts陣列。撥打build_list(:post, 5, user: user)(預製User)的作品。

我錯過了什麼?

另外,有沒有辦法設置全球skip_create,所以我不必在每個工廠都設置它?

回答

1

我有一個類似的問題,並根據我正在閱讀的所有文檔,它應該一直工作。這裏是最後的工作(適用於您的代碼):

變化

build_list(:post, evaluator.posts_count, user: user) 

user.posts = build_list(:post, evaluator.posts_count, user: user) 

讓我知道,如果不工作,但是這就是解決對我來說。

+0

或者在你的情況下,它可能必須是user_with_posts.posts = build_list(:post,evaluateator.posts_count,user:user) – 2014-11-21 22:33:21

+0

謝謝,它是'user.posts =' – Schrute 2014-11-21 23:40:30

+0

太棒了。很高興它的工作。 – 2014-11-22 02:50:03