18
この2つの違いは何ですか?もう一方の代わりに使用する必要がある場合はどうなりますか?Rails 3:エンジンとGemの違いは何ですか?
この2つの違いは何ですか?もう一方の代わりに使用する必要がある場合はどうなりますか?Rails 3:エンジンとGemの違いは何ですか?
レール用語のEngine
は、実際にはWebアプリケーションのサブアプリケーションです。たとえば、ブログ、フォーラム、または単純な認証のようなものです。これらは本格的なアプリケーションではなく、すべてのレールアプリケーションに追加できるページ/ビュー/コントローラ/モデルです。
rails2では、これはplugin
を使用して行われます。 rails3以来、エンジンはgem
にパッケージ化することができます。
gem
は、http://rubygems.orgにあるルビーライブラリです。ルビコードをパッケージ化して他のルビストに配布するための標準的な方法です。
そう結論します
より一般的に使用できるレールアプリケーションの一部です。
これが役に立ちます。
ありがとうございました。もう1つ質問:Hoptoad、例外的な、ニューレルのような我々が使用するアプリは、それらが宝石かエンジンか?ありがとう – donald
彼らはすべて宝石です。宝石は、Railtieと呼ばれるクラスを実装することによって、Railsに簡単に結びつくことができます。つまり、機能的にレールに結びつけることができます。もしそれが 'Engine'というクラスを実装していれば、モデル、ビュー、コントローラ、さらにはスタイルシート、javascriptsなどのアセットも提供することができます。Railsにバインドするために' Railtie'を実装しています。これは、これらがRailsと一緒に使用されることを意味します。したがって、Railsに提供する機能に応じて、「Railtie」または「Engine」を作成するオプションがあります。 – nathanvda
gemに追加したい機能がRailsに直接依存していない場合(クラスにはフックしない)、通常のgemを作成します。例えば。ノコギリはそのような例です。しかし、結論として、レール3以来、あなたはいつもレールを伸ばすために宝石を使うでしょう。これはまた、バンドラーが非常に重要になった理由です。 – nathanvda