プラグインからのRails 3コントローラー

私はRails 3プラグインを作成しています。その中にコントローラを統合して、app/controllersフォルダの「通常の」コントローラとしてレールによって自動的に考慮する必要があります。どのようにすればいいですか、またはプラグインからカスタムコントローラを持つための最善の解決策は何ですか? guides.rubyonrails.org のドキュメントを見つけましたが、ドキュメンテーションを変更しました。プラグインの開発にはもうコントローラが含まれていません。

ありがとう

4

1 答え

Rails :: Engine から継承するプラグイン内にクラスを定義する必要があります。実際に、あなたが望む機能はエンジンです

次のようにクラスを定義します。

lib/your_thing/engine.rb

module YourThing
  class Engine < Rails::Engine
  end
end

そのプラグイン内の app/controllers にエンジンのコントローラを定義することができます。また、それらのルートを定義する必要もあります。 config/routes.rb は次のようにエンジン内部にあります:

YourThing::Engine.routes.draw do
  resources :things
end

次に、アプリケーションの内部にエンジンをマウントする必要があります。

mount YourThing::Engine, :at => "/"

アプリケーションは、あなたのエンジンからのルートを使用することができます。

詳細については、ここで参照できる公式のRails Engineガイドを作成しています。私に教えてくださいさらなる質問があるかどうかを知ってください。私はガイドで答えようとします。

6
追加された
@Mika:あなたはRails 3.1を実行する必要があります。
追加された 著者 Ryan Bigg,
どうもありがとうございました。私は今これを試してみる。
追加された 著者 Mika Andrianarijaona,
私はオプションの--mountableを使用してプラグインの新しいジェネレータを使用してエンジンを作成しようとしましたが、engine.rbファイルは作成されません。理由は何でしょうか?レールバージョンの問題?
追加された 著者 Mika Andrianarijaona,