2015-08-15 59 views
2

我正在使用rails 3(rails (3.2.13))應用程序,我正在使用factory_girl_rails (4.5.0)rspec (2.13.0)factory_girl瞬態屬性的未定義方法

我有一個delivery工廠,看起來像這樣

FactoryGirl.define do 

    factory :delivery do 

    trait :assigned do 
     delivery_type 1 
    end 

    trait :started do 
     delivery_type 2 
    end 

    factory :delivery_with_jobs do 

     ignore do 
     jobs_count = 2 
     duration = 10 
     end 

     after(:create) do |delivery, evaluator| 
     create_list(:job, evaluator.jobs_count, delivery: delivery, client: delivery.client) 
     end 
    end 
    end 
end 

,我嘗試在我的規格來實例化這樣

let!(:delivery_with_jobs) { 
     FactoryGirl.create(
      :delivery_with_jobs, 
      :started, 
      jobs_count: 3, 
      user: user, 
      current_user: user, 
      account: user.account, 
      client: client 
     ) 
     } 

事情正在運行測試,還當我不斷收到NoMethodError: undefined method 'jobs_count' for #<FactoryGirl::SyntaxRunner:0x000000079e5f00>試圖在軌道控制檯中創建工廠。我對factory_girl第一and have found this post更低的版本。所以,我試圖改變關鍵字ignore這並沒有幫助,所以我試圖升級工廠女孩也沒有幫助。

當我省略jobs_count參數從FactoryGirl.create(:delivery_with_jobs)我也得到了同樣的錯誤。

我做錯了什麼?你對這個問題的原因有什麼建議嗎?

在此先感謝。

+0

的[用於FactoryGirl瞬態變量未定義方法]可能重複(http://stackoverflow.com/questions/25510268/undefined-methods-for- factorygirl-transient-variables) –

+1

我在我的問題中引用了該帖子。這不是我的問題的解決方案,我也在我的問題中提到過。問題是,在「=」 S在短暫的變量定義 – raethlo

回答

2

你忽略/瞬變塊不應該有= S

ignore do 
    jobs_count 2 
    duration 10 
end 
+0

是啊,非常感謝,我檢查了一百次了這樣的一個語法錯誤,但沒有注意到它... – raethlo