23

Rails 3.1 で使用するマウント可能なエンジンに取り組んでおり、エンジンのルートを一覧表示したいと考えています。

以下を使用してエンジンを作成しました。

$ rails plugin new rails_blog_engine --mountable

そして、「test/dummy/config/routes」ファイルを次のように編集しました。

Rails.application.routes.draw do
  mount RailsBlogEngine::Engine => "/blog"
end

...そして「config/routes」を読んでください:

RailsBlogEngine::Engine.routes.draw do
  resources :posts
end

':posts' 用に生成されたルートを一覧表示したいのですが、これを行う方法が明確ではありません。「rake app:routes」を実行すると、「/blog」ルートのみが取得されます。

$ rake app:routes
rails_blog_engine    /blog    {:to=>RailsBlogEngine::Engine}

「rake routes」を実行すると、エラーが発生します。

$ rake routes
rake aborted!
Don't know how to build task 'routes'

':posts' のルートを確認するにはどうすればよいですか? 関連するレーキタスクを書き直さずにこれを行うことはできますか?

4

6 に答える 6

24

コメントで見落とされている方のために、Rails 3.2.2現在、

$ rake app:routes
于 2012-12-03T07:22:31.347 に答える
11

コードを標準の Rails 3.1.0 rake routesタスクから Rakefile にコピーし、上部を次のように変更すると:

task :routes => 'app:environment' do
  Rails.application.reload_routes!
  all_routes = RailsBlogEngine::Engine.routes.routes

... RailsBlogEngine をエンジンの名前に置き換えると、次のコマンドを実行してルートの基本的なリストを取得できます。

rake routes

Rails 3.1.1 以降では、新しいバージョンの rake routesタスクが必要になることに注意してください。

于 2011-09-15T14:57:02.740 に答える