FactoryGirl:使用私有类方法new创建模型工厂

时间:2016-04-07 09:33:24

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

我使用非AR模型和工厂方法。

class MyModel
  include ActiveAttr::Model

  attribute :data
  attribute :frequency

  def self.process_data
    # ...
    new(data: 'foo', frequency: 1) # e. g.
  end
  private_class_method :new
end

cource的默认工厂调用会引发错误:私有方法`new'调用MyModel 是否有任何特殊选项可以设置工厂以省略此错误?

1 个答案:

答案 0 :(得分:3)

查看initialize_with

class A
  class << self
    private :new
  end
end

FactoryGirl.define do
  factory :a do
    initialize_with { A.send :new }
  end
end

FactoryGirl.build :a
#<C:0x007ff1219f0190>
相关问题