2011年6月8日水曜日

[Rails3] Viewでコントローラ名/アクション名を取得する

Viewの中でコントローラ名やアクション名を参照するには、Controllerクラスのインスタンスであるcontrollerを使って取得できます。
#{RAILS.ROOT}/app/views/xxxx.html.erb
  <%= controller.controller_name %>  # コントローラ名
  <%= controller.action_name %>  # アクション名

ただしこの方法では namespace を取得できません。
つまり UsersController も Admin::UsersController も、controller_name は同じく users を返すってこと。残念な人には残念かも…


ちなみに Controller の中であれば、メソッド名だけで呼べます。
#{RAILS.ROOT}/app/controllers/xxxx_controller.rb
  ctrlname = controller_name  # コントローラ名
  actname = action_name  # アクション名

0 件のコメント:

コメントを投稿