gpt4 book ai didi

ruby-on-rails - FactoryGirl - 如何创建记录层次结构?

转载 作者:数据小太阳 更新时间:2023-10-29 08:06:56 24 4
gpt4 key购买 nike

正在尝试为嵌套区域记录创建工厂。我正在使用 ancestry为此目的的 gem 。 Region 是 Place 的关联实体

放置工厂:

factory :place, traits: [:pageable] do
...
association :region, factory: :nested_regions
end

区域工厂:

factory :region do
level 'area'
factory :nested_regions do |r|
# create South Hampton region sequence
continent = FactoryGirl.create(:region,
level: Region.levels[:continent],
name: 'Europe ')
country = FactoryGirl.create(:region,
level: Region.levels[:country],
name: 'United Kingdom',
parent: continent)
state = FactoryGirl.create(:region,
level: Region.levels[:state],
name: 'England',
parent: country)
county = FactoryGirl.create(:region,
level: Region.levels[:county],
name: 'Hampshire',
parent: state)
name 'Southampton'
parent county
end
end

当我将调试放入 :nested_regions 工厂时,我看到这些区域层次结构已经创建,但在 Place 的 before_validation Hook Region.all 中仅返回“Southhampton”区域。使用 FactoryGirl 实例化整个区域层次结构的正确方法是什么?

最佳答案

不要为此目的使用变量。为每个级别创建单独的工厂并按如下方式使用它:

factory :region do
name 'Region'

factory :county
association :parent, factory: :region
level 'county'
end

factory :area
association :parent, factory: :county
level 'Area'
name 'area'
end
end

关于ruby-on-rails - FactoryGirl - 如何创建记录层次结构?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45139694/

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