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