Factory_girls和祖先

时间:2011-07-07 07:04:35

标签: ruby-on-rails tree tdd factory-bot

我有型号类别。

class Category < ActiveRecord::Base
  has_ancestry :cache_depth => true, :depth_cache_column => :depth
end

类别具有字段名称。我想建立一个深度等级为2的类别的工厂。 当调用此工厂时,它必须构建类别级别2并具有级别1的父级别。 这该怎么做? 我尝试各种技巧,都不行。我停在类似的东西

Factory.define :category do |f|
  f.name                        { Faker::Lorem.word }
  f.parent                      { Factory.create(:category) }
end

谢谢!

1 个答案:

答案 0 :(得分:3)

也许你可以创建另一个没有父母的工厂。 如果你想拥有2级别的类别,你可以:

Factory(:category_level2)

工厂定义可能是这样的:

Factory.define :category do |f|
  f.name   { Faker::Lorem.word }
end

Factory.define :category_level2, :parent => :category do |f|
  f.parent { Factory.create(:category) }
end

干杯