好奇心から... 以前の投稿Rails3.1 engine: can't get SLIM or HAML to work in test/dummy apptest/dummy
で、Ruby に自分のアプリケーションで gem を使用するように指示する場所を尋ねました。
(明らかな?) 答えは、それをエンジンの Gemfile に入れることでした。これは機能しますが、Yehuda Katz の Post Clarifying the Roles of the .gemspec and Gemfileで彼が言及しているため、少し不快になります...
... gem を開発するとき、Gemfile は「gem の Gemfile には Rubygems ソースと単一の gemspec 行を含める必要があります」。
一方、(Rails を使用して生成されたrails plugin new my_engine
) 私のエンジンの Gemfile 内には、次のようなものがあります。
# jquery-rails is used by the dummy application
gem "jquery-rails"
だからこれは正しいようです。更新:いいえ、そうではありません!以下の私の答えを見てください...
それでも、StackOverflowの別の場所で、これに対する解決策は単に必要な gem を必要とすると言われてconfig/application.rb
います。 -アプリケーションに入れるのが一番良いと言われていますlib/<your_engine>/engine.rb file
。
そして、ここに私の考えがあります: アプリは、ファイルtest/dummy
で指定されたすべての Gem を単に自動的に要求しないのはなぜですか? 明示的にand.gemspec
を使用して、運用モードと開発モードに使用するジェムをジェムに通知することもできるため、これを行わない理由はわかりません。add_dependency
add_development_dependency
test/dummy
test/dummy
最後の質問です。アプリで gem を使用するよう Ruby に指示する必要があるのは、正確にはどこですか? Ruby にホスト アプリでも GEM を強制的に使用させたくありません。