Ruby on rails 工厂创建vs构建和关联

Ruby on rails 工厂创建vs构建和关联,ruby-on-rails,rspec,rspec2,factory-bot,Ruby On Rails,Rspec,Rspec2,Factory Bot,我在工厂女孩协会遇到了一些麻烦: Factory.define :account do |f| f.sequence(:email) {|n| "john#{n}@example.com" } f.password "secret" f.confirmed_at 2.days.ago.to_s(:db) f.name "John Doe" f.seller false f.admin false end Factory.define :request do |f|

我在工厂女孩协会遇到了一些麻烦:

Factory.define :account do |f|
  f.sequence(:email) {|n| "john#{n}@example.com" }
  f.password "secret"
  f.confirmed_at 2.days.ago.to_s(:db)
  f.name "John Doe"
  f.seller false
  f.admin false
end

Factory.define :request do |f|
  f.association :account
  f.message 'Test message.'
end
问题是:

当我执行a=Factory(:request)时,a.account=>nil,但当我执行a=Factory.build(:request)时,a.account是正确的

知道为什么会这样吗


感谢工厂(:请求)调用默认策略,您是否在某个地方更改了它?

工厂(:请求)调用默认策略,您是否在某个地方更改了它?

这里没有验证问题?如果在创建后执行a.errors怎么办?请求模拟上没有验证错误。。。它被保存,但没有帐户id,这让我想知道请求中是否存在验证错误。帐户,我可以用任何方式检查吗?我也不确定在创建请求之前SQL为什么是这样的“选择
帐户
*FROM
帐户
其中
帐户
电子邮件
为空限制1”这里没有验证问题吗?如果在创建后执行a.errors怎么办?请求模拟上没有验证错误。。。它被保存,但没有帐户id,这让我想知道请求中是否存在验证错误。帐户,我可以用任何方式检查吗?我也不确定在创建请求之前SQL为什么是这样的“选择
帐户
*FROM
帐户
其中
帐户
电子邮件
为空限制1”这不是答案,只是一个commentfactory_女孩让你有机会覆盖用于构建对象的默认策略。在任何情况下,看看上面的代码,你确定你没有丢失密码确认字段吗?我刚刚意识到我在一个before\u save回调中设置了模型中的关联。。。啊。。。感谢您的帮助,这不是答案,只是一个commentfactory_女孩让您有机会覆盖用于构建对象的默认策略。在任何情况下,看看上面的代码,你确定你没有丢失密码确认字段吗?我刚刚意识到我在一个before\u save回调中设置了模型中的关联。。。啊。。。谢谢你的帮助