LoginSignup
11
11

More than 5 years have passed since last update.

Rails3 Engineのroutes.rbでの注意

Posted at

少しだけハマったのでメモ

Rails3のEngineでルーティングを設定すると、engineを利用する側のアプリケーションへ自動的にそのルーティングが設定されます。

その際、Engine側のroutes.rbで、

MyEngine::Engine.routes.draw do
    get "hoge/index"
end

と設定し、以下のように利用する側のアプリケーションでマウントしたとします。

Rails.application.routes.draw do
  mount MyEngine::Engine => "/my_engine"
end

こうすると、/my_engine/hoge/indexでアクセスできるのだろうと思っていましたが、実際のところは、

Routing Error
uninitialized constant HogeController

が発生してしまいました。

解決策としては、明示的にcontroller, actionを指定すること。

MyEngine::Engine.routes.draw do
    get "hoge/index" => "hoge#index"
end

解決したけれどもなんとなく腑に落ちない。
もう少し調べる。

11
11
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
11
11