1

一言で言えば、私は含むgemfileを持っています

group :assets do
  gem 'my_gem'
end

my_rake_task、依存する rake タスク:environment、必要な Rails イニシャライザmy_gem、および次の 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 レシピを呼び出すと、イニシャライザは定数 from が利用できないというエラーを発生させますmy_gem。この初期化子が壊れないように、rake タスクで:assetsグループ gems を取得するか、gemfile に別のグループを追加するにはどうすればよいですか? (もちろん、私はグループmy_gemの外に移動することができ:assets、すべてが正常に機能しますが、それは回避できると確信している安価なハックの答えのように思われることに注意してください。)

4

1 に答える 1

1

開くconfig/application.rb。その上を見てください。次の行をコメントアウトします。

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

そして、これをコメント解除します:

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

そのため、アプリの読み込み時にアセット グループの gem が読み込まれます。

しかし、アプリケーションの初期化子で自分のmy_gem権利を使用する必要がある場合は、資産グループから移動する必要があると思います。

この記事からバンドラーのグループ化に関する詳細情報を取得できます: http://iain.nl/getting-the-most-out-of-bundler-groups

于 2013-03-19T19:29:56.427 に答える