2015-08-09 50 views
0

我一直無法在spec/dummy範圍的rails控制檯內訪問我的FactoryGirl定義。我明白,因爲我的定義在spec/factories文件夾中,所以控制檯不能訪問它們,但我將如何去包含或找到這些定義。在Rails引擎中使用FactoryGirl

FactoryGirl的命名空間是在測試和開發控制檯環境中定義的,但是我在spec/factories中的factories.rb中的工廠沒有註冊。

我的設置是從本教程:http://viget.com/extend/rails-engine-testing-with-rspec-capybara-and-factorygirl

+0

您能否提供一些配置代碼和導致問題的代碼片段?如果您可以提供代碼片段以及您認爲可能導致錯誤的原因,那麼回答您的問題會更好。 – harshs08

+0

@ harshs08該鏈接中的確切代碼是罪犯。這是準系統應用程序配置。也許我應該重新解釋這個問題,以便它更少地依賴於內容代碼,並且更多地要求提供一些操作方法。我只需要知道如何在引擎的控制檯中訪問工廠,但由於控制檯是從spec/dummy運行的,因此spec/factories中的定義不會被訪問。 – cmcdaniels

+0

[Rails 4 Use Engine Factory from Engine]的可能重複版本(http://stackoverflow.com/questions/25342466/rails-4-use-factory-girl-factories-from-engine) –

回答

0

我得到這樣的錯誤的時間最長,不管我試了一下計算器建議:

ArgumentError: Factory not registered: item 

我終於明白了,當我的工廠我的引擎的名字被加在工廠文件的前綴,所以,而不是:

FactoryGirl.define do 
    factory :item do 
    ... 
    end 
end 

我看到:

FactoryGirl.define do 
    factory :my_engine_item, :class => 'MyEngine::Item' do 
    ... 
    end 
end 

最終得到的東西的工作我簡稱my_engine_item而不是item在我FactoryGirl聲明,這樣:

FactoryGirl.build(:item) 

成爲

FactoryGirl.build(:my_engine_item) 

這不是一個很優雅的解決方案,甚至可能甚至沒有解決您的問題,但我認爲我會分享我所經歷的任何事情。