Fabrication gem:如何将自定义值传递给init_with()?

时间:2013-12-22 16:48:35

标签: ruby fabrication-gem

Fabrication gem允许我们将自定义参数传递给我们正在构造的类的构造函数:

on_init { init_with('something', true) }

但是如何在对象生成时间内传递init_with的自定义值?

对于对象字段,我可以执行以下操作,但有没有办法将值传递给init_with

Fabricate(:foobar, attr1: 'something', attr2: true)

2 个答案:

答案 0 :(得分:2)

您可以在Fabricate时使用块语法,就像定义Fabricator时一样。

Fabricate(:foobar, attr1: 'something', attr2: true) do
  on_init { init_with('another', 'thing') }
end

答案 1 :(得分:1)

据我所知,这是不可能的。

  def build_instance_with_init_callback(callback)
    self._instance = _klass.new(*callback.call)
    set_attributes
  end

您坚持使用制造商定义中使用的内容。