1

所以我有两个模型。一个船has_many用户,一个码头belongs_to用户。此外, adock有一个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没有为 创建a dock,更不用说为正确的用户创建了。

4

1 回答 1

2

通过做解决

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

  factory :boat do 
    ....
  end
于 2013-06-06T18:29:30.177 回答