0

我有一个城市工厂我想根据 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
4

1 回答 1

0

如果我对您的理解正确,您正在尝试干燥您的工厂定义。

在您的具体情况下,我认为没有必要,但这个例子可能只是一个更一般用例的简化。

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

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

  1. 使用特征
  2. 使用忽略的属性

两者都在这篇不错的文章中进行了描述:http: //arjanvandergaag.nl/blog/factory_girl_tips.html

于 2013-09-30T10:10:36.803 回答