tldr;エンジンを使用するテストアプリケーションでレーキタスクを実行すると、Engineの依存関係は尊重されていないようです。テストアプリのGemfileに依存関係を指定して(-D)RYにする必要がありますRails 3エンジンのGem依存関係はイニシャライザで失敗する
私はJewelerを使用してRailsエンジンを宝石として作成しました。私はGemfileにエンジンの依存関係を追加私のテストのアプリで
gem.add_runtime_dependency 'devise', '~> 1.1.3'
、およびbundle install
は工夫がピックアップされ、インストールされていることを示しています。それは私がRakefileで指定した工夫に依存しています。私は最初の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
@justsee:リンクのおかげで、宝石の開発は最初は暗いかもしれませんが、このような投稿は混乱を解消するのに大いに役立ちます。 –