FactoryGirl在工厂定义中引用factory_name

时间:2013-09-30 06:58:14

标签: ruby-on-rails factory-bot

我有一个城市工厂 我想添加关于factory_name的关联 但我不知道如何在定义中引用名称......

  factory :place do
    loc_geographic "-82.283204,29.320888"
    city "Some City"
    country 'USA'
    after(:build) do |place, eval|
      place.images << FactoryGirl.build("place_image_#{__FACTORY_NAME__}".to_sym)
    end
    factory :ny do
      city "New York"
    end
  end

  factory :place_image_ny, class: 'Place::Picture' do
    attachment {File.open(File.join(Rails.root, "/spec/fixtures/attachment/place_ny.jpg"))}
  end

1 个答案:

答案 0 :(得分:0)

如果我理解正确的话,你会试图干掉你的工厂定义。

在你的具体情况下,我不认为这是必要的,但这个例子可能只是对更通用的用例的简化。

据我所知,无法访问定义中的工厂名称。我认为这可能是出于某种原因,但谁知道......

有几种方法可以做你想做的事:

  1. 使用特征
  2. 使用忽略的属性
  3. 这两篇文章都在这篇很好的文章中进行了描述:http://arjanvandergaag.nl/blog/factory_girl_tips.html