如何在Fabrication的计数参数中使用瞬态属性?

时间:2013-07-14 07:02:16

标签: ruby-on-rails ruby fabrication-gem

我有一个Rails模型的制作者:

Fabricator(:foo) do
  transient n_iterations: 5

  bar(count: :n_iterations) { Fabricate(:bar) }
end

然而,这并不像希望的那样奏效。我已经尝试了count: n_iterationscount: attrs[:n_iterations]count: attrs[n_iterations],但似乎没有任何效果。这看起来应该是一件相对简单的事情。

任何想法都会非常感激。

1 个答案:

答案 0 :(得分:0)

您可以使用以下内容:

Fabricator(:foo) do
  transient n_iterations: 5
  bar { |attrs| (1..attrs[:n_iterations]).map { Fabricate(:bar) } }
end

但请注意,Fabricate(:foo, n_iterations: 0)将返回Foo,其中bar => []为空数组。