gpt4 book ai didi

ruby-on-rails - FactoryGirl,has_one关联和验证失败

转载 作者:行者123 更新时间:2023-12-03 12:08:38 28 4
gpt4 key购买 nike

这些是2个简单的模型:

class Post < ActiveRecord::Base
has_one :asset, :dependent => :destroy

validates :asset, presence: true
end

class Asset < ActiveRecord::Base
belongs_to :post
end

我正在尝试创建一个像这样的工厂:
  factory :post do
# fields...

asset { FactoryGirl.create(:asset) }
end

factory :asset do
# fields...

post
end

但是,运行规范会进入循环。

我也试过这个:
  factory :post do
# fields...

before(:create) do |post, evaluator|
FactoryGirl.create_list(:asset, 1, post: post)
end
end

但是最终出现在“验证失败: Assets 不能为空”。

我如何代表我的情况?

最佳答案

我使用after(:build)回调解决了这个问题。

factory :post do
# fields...
after(:build) do |post|
post.asset ||= FactoryGirl.build(:asset, :post => post)
end
end

factory :asset do
# fields...
after(:build) do |asset|
asset.post ||= FactoryGirl.build(:post, :asset => asset)
end
end

通过这种方式,将在保存拥有的类之前创建关联的对象,因此验证通过。

关于ruby-on-rails - FactoryGirl,has_one关联和验证失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17034423/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com