Factory_girl has_one relation with validates_presence_of

a 夏天 提交于 2019-12-05 03:54:57
mb14

Fix it that way (as explained in this post)

Factory.define :user do |u|
  u.login "test"
  u.profile { |p| p.association(:profile) }
end

What you can do as well (as a user don't need a profile to exist (there's no validation on it) is to do a two steps construction

Factory.define :user do |u|
  u.login "test"
end

and then

profile = Factory :profile
user = Factory :user, :profile => profile

I guess in that case you even just need one step, create the user in the profile factory and do

profile = Factory :profile
@user = profile.user

That seems the right way to do it, isn't it?

Update

(according to your comment) To avoid saving the profile use Factory.build to only build it.

Factory.define :user do |u|
  u.login "test"
  u.after_build { |a| Factory(:profile, :user => a)}    
end
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!