从FactoryGirl 2.5.2升级到4.5.0后,belongs_to
关联的验证失败。
两个模型文件:
class User < ActiveRecord::Base
...
has_many :things
...
end
class Thing < ActiveRecord::Base
...
belongs_to :user
validates_presence_of :user
...
end
工厂:
FactoryGirl.define
factory :thing do
association :user
...
end
end
创建新的thing
始终无法说出User must be provided
。当我进入代码时,问题是外键设置正确,但关联的对象似乎为零。
>> user = create(:user)
( returns saved "user" object )
>> user.id
1
>> thing = build(:thing, user: user)
( returns new "thing" object )
>> thing.valid?
false
>> thing.user_id
1
>> User.find(1).present?
true
>> thing.user
nil
我已尝试过各种各样的组合和变体。我尝试使用after(:build)
块来设置用户并使用不同的FactoryGirl语法。我尝试过简单user
而不是关联。但它始终归结为这个问题 - 有一个关联的键,它是正确的,但不是一个关联的对象(即使该对象存在并被保存)。
环境:
ruby 2.1.5
factory_girl 4.5.0
factory_girl_rails 4.5.0
rails 4.2.0
rspec 3.1.0
答案 0 :(得分:0)
您需要定义用户工厂。如果您已经这样做,请编辑您的答案以显示它。