FactoryGirl工厂的可选参数

时间:2013-06-06 16:28:29

标签: ruby-on-rails ruby-on-rails-3 factory-bot

所以我有两个型号。一个小船has_many用户和一个停靠belongs_to用户。此外,dock有一个boat。在Dock工厂中,我正在尝试为该dock创建一个用户,并将其传递给boat以创建其用户数组。作为附加要求,我需要船的工厂将temp_user作为可选参数。以下是我的尝试。

  factory :dock do
    temp = user
    boat temp
  end 

  factory :boat do | temp_user |
    users { [ temp_user || FactoryGirlDefaultMethods.default_user ] }
    ....
  end

这似乎导致NoMethodError: undefined method 'read_uploader' for nil:NilClass。我不知道如何调试它,或如何纠正它。任何帮助将不胜感激。

更新的 该错误来自一个无关的问题,但没有为boat创建dock,更不用说与正确的用户。

1 个答案:

答案 0 :(得分:2)

通过执行解决

  factory :dock do
    user
    boat { build :boat, users: [user] }
  end 

  factory :boat do 
    ....
  end