Header
2018-09-04
2019-03-01

Ruby on RailsでAction名やController名を取得する

Switching 257736

Ruby on RailsではAction名やController名を取得するメソッドがあり、ViewでAction名やController名によって内容を変更する事が可能になります。

Viewで利用する場合

ViewでAction名を取得

(byebug)controller.action_name
"index"

Viewでcontroller名を取得

(byebug) controller.controller_name
"settings"

例えば以下では、newとeditアクションで同じフォームを利用する場合、newアクションの場合はuser_idをhiddenする設定になります。

= simple_form_for(@article, url: url) do |f|
  = f.input :title
  - if controller.action_name == "new"
    = f.hidden_field :user_id, value: current_user.id

categoriesの場合サイドバーの設定などを変更したい

- if controller.controller_name == "categories"
  == render partial: 'articles/partial/categories_side_content',

Controllerで利用する場合

Controller内で、ControllerのAction名やController名を取得する事はあまりないと思いますが、以下で取得可能です。

Action名を取得する

action_name

Controller名を取得する

controller_name 

以上になります。

その他関連記事

Ruby on Railsでto_paramメソッドを利用し、ルートへ文字列を追加する

【初心者・独学者向け】Ruby on Railsで使いやすいメソッド.present?の紹介

Rubyの引数で使えるテクニック|キーワード引数

Rubyでファイルの読み込み、書き込みを行う方法

Ruby on Railsで三項演算子を使って、if文をスリムに書いてみる

Ruby on Rails4で簡易ブログを作成する1 | VIew Controller ルートを作成する

前の記事
次の記事
人気記事
カテゴリーから記事を探す