Gemfile组依赖项

时间:2013-03-19 18:46:40

标签: ruby-on-rails ruby rake capistrano gemfile

简而言之,我有一个包含

的gemfile
group :assets do
  gem 'my_gem'
end

,依赖于my_rake_task的rake任务:environment,需要my_gem的Rails初始化程序,以及以下的Capistrano代码段:

task :run_my_rake_task, :roles => :db do
  run "cd #{release_path} && bundle exec rake RAILS_ENV=#{rails_env} my_rake_task"
end

事实上,调用此Capistrano配方会导致初始化程序引发错误,指出my_gem的常量不可用。如何让rake任务拉入:assets组gems或将另一个组添加到gemfile中以使此初始化程序停止中断? (请注意,我当然可以将my_gem移到:assets组之外,一切正常,但这似乎是我确信可以避免的廉价黑客答案。)

1 个答案:

答案 0 :(得分:0)

打开config/application.rb。看看它的顶部。注释掉这一行:

Bundler.require(*Rails.groups(:assets => %w(development test)))

并取消注释:

Bundler.require(:default, :assets, Rails.env)

因此,当应用加载时,它会加载您的资产组宝石。

但我认为如果您需要在应用程序的初始化程序中使用my_gem权限,则需要将其从资产组中移出。

您可以从本文获得有关捆绑程序分组的更多信息:http://iain.nl/getting-the-most-out-of-bundler-groups