とりあえずnull

プログラミングの勉強日記

RailsでControllerやActionを取得したい時に使えるメソッド

Rails開発しているとViewのほうでアクセスしているページのコントローラーやアクションを取得して、ビューで表示するものを変えたい、というケースがあったりします。

そんなときどうするかといいますと、

controller.controller_name
controller.action_name

で確認することができます。 条件分岐で使いたい場合などはこんな感じになるかと。

<% if controller.controller_name == "コントローラー名" && controller.action_name == "アクション名" %>
表示するもの。
<% end %>

ただビューでこんな長ったらしいもの書くのは嫌だなぁって方や、いくつかのビューで使いたいって方はこんな感じでhelper_methodにまとめておくといいかも。

ex) app/helpers/application_helper.rb

def check_page(controller_name, action_name)
  controller.controller_name == controller_name && controller.action_name == action_name
end

ex) app/views/items/show.html.erb

<% if check_page('items', 'show') %>
表示するもの。
<% end %>

スッキリしました〜!