4
tldr;當我在使用引擎的測試應用程序中運行rake任務時,引擎依賴關係似乎不受尊重。我必須通過指定測試應用程序的Gemfile中的依賴項來指定(-D)RY使用Rails 3引擎的Gem依賴關係在初始化器中失敗
我已經使用珠寶商創建了一個Rails引擎作爲寶石。它有我在Rake文件所指定設計上的依賴關係:
gem.add_runtime_dependency 'devise', '~> 1.1.3'
在我的測試程序,我添加引擎依賴於Gemfile中,並bundle install
表明,設計拾取和安裝。但是,如果我運行一個初始rake db:migrate
拋出一個錯誤:
uninitialized constant Devise
<snip>config/initializers/devise.rb:3
如果我手動添加設計依賴於測試應用程序的Gemfile中它的工作原理。我可能錯過了一些顯而易見的東西,但是在這個階段,測試應用程序看起來會正確安裝依賴項,但由於某種原因,初始化程序代碼將失敗,除非依賴項在測試應用程序的Gemfile中再次列出。
是的,這就是我所做的。我對Rakefile/.gemspec/Gemfile的角色一無所知,但是Yehuda的優秀文章[澄清.gemspec和Gemfile的角色](http://yehudakatz.com/2010/12/16/clarifying -the-gemspec-and-gemfile /)角色清除了一切! – justsee 2011-02-17 00:02:58