5

初めての Rails 3 エンジンの作成に取り組んでいますが、現在、次のエラー メッセージが表示されます。

is a Railtie/Engine and cannot be installed as plugin (RuntimeError)

もう少し背景を説明するために、私はエンジンを gem として扱っているわけではありませんが、エンジン ファイルを vendor/plugins フォルダーに配置しました。プラグイン フォルダーでの読み込みに問題があることはわかっていますが、問題の解決方法がわかりません。

エンジンの私の rails/init.rb ファイルには次のコードがあります

require 'rails'

module RailsApp
  module MyEngine
    class Engine < Rails::Engine

      config.after_initialize do
        RailsApp::GameType.register do |game_type|
          game_type.name = "TreasureIsland"
          game_type.version = "0.1"
          game_type.thumbnail = "teasure_island.jpg"
        end
      end
    end
  end
end

提案?

4

2 に答える 2

2

ジョン、エンジン (通常は gem) とプラグイン (ベンダーにある) は、レールの初期化プロセスの異なる時点で読み込まれると思います。

エンジンは実際にはもう少し柔軟性があり、レールに深く引っ掛けることができます。さらに、gem としてパッケージ化することには多くの利点があります。アプリ間で共有しやすく、別のコード リポジトリで管理しやすく、バージョン管理が容易です。

私は今、最初の Rails エンジンを作成しており、始めるための便利な出発点とウォークスルーを作成しました。

http://keithschacht.com/creating-a-rails-3-engine-plugin-gem/

于 2010-10-06T22:30:13.597 に答える
2

アプリケーションの起動プロセスの別の時点でロードされることを意図しているため、Railties は plugins ディレクトリでは機能しないと読んだことを覚えていると思います。多くの作業を行ってくれる Jeweler などを使用して宝石を作成することをお勧めします。Railtie/Engine の目的は、複数の Rails アプリに含めることができる再利用可能なコンポーネントを用意することです。gem を作成したら、Gemfile 内のローカルの gem パスを指定できます。これにより、エンジン コードを変更するたびに gem をビルドして再インストールしなくても、Rails アプリ内のエンジン コードの変更を確認できます。もちろん、実稼働環境にインストールされた gem をバンドラーに指定する必要があります。これを github に置き、本番環境の Gemfile でその URL を使用することをお勧めします。

Bundler ローカル gem の例:

#Gemfile
gem "my_engine", :require => "my_engine", :path => "/my_engines/my_engine"

Modern Rubyist の Web サイトをチェックしてください。彼は、Railties と Engine の作成に関する優れたシリーズを持っています。これが書かれてからRailsにいくつかの変更があったかもしれませんが、そのほとんどはまだ関連していると思います. Rails 3 でエンジンを作成する方法を学んでいたとき、これはかなり役に立ちました。

http://www.themodestrubyist.com/2010/03/01/rails-3-plugins---part-1---the-big-picture/
http://www.themodestrubyist.com/2010/03/ 05/rails-3-plugins---part-2---writing-an-engine/
http://www.themodestrubyist.com/2010/03/16/rails-3-plugins---part-3- --rake-tasks-generators-initializers-oh-my/
http://www.themodestrubyist.com/2010/03/22/rails-3-plugins---part-4---more-on-generators/

于 2010-09-19T20:37:09.743 に答える