レールでは、現在のコントローラの名前をcontroller_nameで取得し、現在のアクションはaction_nameを呼び出して取得できます。私は、次のものをフェッチするための類似のランタイムリフレクションを探しています:ruby on railsでコントローラーとアクションのリストを取得するには?
- アプリケーション内のすべてのコントローラのリスト。
- 特定のコントローラ内のすべてのアクションのリスト。
たとえば、私は「追加」アクションと「編集」アクションを持つProductコントローラです。これらのアクションの名前をプログラムでプルダウンして、どの操作がサポートされているかをユーザーに表示できますか?
私はActionController::Routing::Routes.named_routes.routes.each
を使用する方法を検討しましたが、動作させることができませんでした。私はそれを使用したときに、初期化されていない定数ActionDispatch::Routing::Routes
エラーが発生しました。
レールリフレクションの機能を理解するのに役立つ良いチュートリアルやドキュメントがある場合は、私はそれを探しましたが、主に積極的な記録反映ブログがありました。私は実行時にコントローラとアクション/メソッドに関する情報を得ることができるものを探しています。
おかげで、
Tabrez
実行時またはレイクジョブでこれを実行していますか。実行時は悪い考えです。レイクの仕事はこれをするのは簡単です。 – drhenner
"レーキルート"を意味しましたか?私は実行時に何かを探していた。私はレーキルートが出力する広範な情報は必要ありません。コントローラー名が必要です。私はコレクションとして利用可能でなければならないと考えています。レールに目を向けているので、実行時にどのようなコンテキストオブジェクトがレールでアクセス可能か分かりません。 – Tabrez
類似の質問がここに見つかりました。http://stackoverflow.com/questions/1564278/how-to-programmatically-list-all-controllers-in-rails – nkm