railsにて、admin/index のように、階層を作成したい場合がある。
この場合、下記のようにコントローラを作成できるが、routing で引っかかる。
[ruby]
rails generate controller admin/index index
[/ruby]
この場合、config/routes.rb にて namespaceを使用する。
[ruby]
namespace :admin do
get "index/index"
end
[/ruby]
はまったのが、下記のようにリンクを作成するとroutingエラーになる。
[ruby]
<%= link_to("管理画面へ", {:controller => index, :action => index} %>
[/ruby]
そこで、下記コマンドでルーティング情報を表示してみる。
[ruby]
$rake routes
admin_index_index GET /admin/index/index(.:format)
[/ruby]
そのまま下記のように記述するが、またエラー。
[ruby]
<%= link_to("管理画面へ", admin_index_index %>
[/ruby]
どうやら、を付けるようだ。
[ruby]
<%= link_to("管理画面へ", admin_index_index_path %>
[/ruby]
うまくいった。
Pingback: Whoocus » Blog Archive