Ruby on rails Rails/Factory Girl:相互存在验证
我在两个rails模型“Project”和“Step”之间有一个关联,因此一个项目有许多步骤。一个步骤需要一个项目id,而一个项目至少需要一个步骤才有效……我想知道如何在factory girl中创建此步骤而不出现递归问题 目前,我的工厂是这样的:Ruby on rails Rails/Factory Girl:相互存在验证,ruby-on-rails,factory-bot,Ruby On Rails,Factory Bot,我在两个rails模型“Project”和“Step”之间有一个关联,因此一个项目有许多步骤。一个步骤需要一个项目id,而一个项目至少需要一个步骤才有效……我想知道如何在factory girl中创建此步骤而不出现递归问题 目前,我的工厂是这样的: factory :project do #... steps { |s| [s.association(:step)] } end factory :step do #... association :project end it
factory :project do
#...
steps { |s| [s.association(:step)] }
end
factory :step do
#...
association :project
end
it "must have a step to be valid" do
expect(FactoryGirl.create(:project)).to be_valid
end
当然,由于递归关联,返回“堆栈级别太深”错误。问题是,我需要填充这两个值
感谢您的建议。假设这是您的模型:
class Project < ActiveRecord::Base
has_many :steps
end
class Steps < ActiveRecords::Base
belongs_to :project
validates :steps, :presence => true
end
我是从臀部开枪,如果这不起作用,很抱歉。无论如何,我认为这是总的想法
it "must have a step to be valid" do
expect(FactoryGirl.create(:project)).to be_valid
end