0

追加の gem を介して拡張可能な、名前空間付きの Rails Engine gem を構築しています。例: MyEngine は、名前空間にもなるメインの gem です。MyEngine-blog と MyEngine-support は、MyEngine 名前空間を継承しながら MyEngine gem を拡張するオプションの gem です。

MyEngine-blog と MyEngine-support は、コア機能について MyEngine に依存しており、両方の gem がspec.add_dependency "synculus"gemspec ファイルに含まれます。

Rails::Engine依存ジェムを指定する適切な方法は何ですか? class Engine < ::Rails::EngineMyEngine-blog & MyEngine-support gem の engine.rb ファイルのそれぞれで指定する必要がありますか?

# lib/myengine/engine.rb
module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine
  end
end

# lib/myengine/blog/engine.rb
module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine
    module Blog
    end
  end
end

# lib/myengine/support/engine.rb
module MyEngine
  class Engine < ::Rails::Engine
    isolate_namespace MyEngine
    module Support
    end
  end
end
4

1 に答える 1

1

spree commerce が 2.x リリースでこれをどのように行っているかを見てみましょう。彼らは Rails エンジンを非常によく理解しています。

Spree Commerce 2.x engine.rb

于 2014-03-26T23:56:04.637 に答える