2 flat logo on transparent 256
2018-09-04

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

Switching 257736

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

Viewで利用する場合

controller.actionnameでAction名、controller.controllernameで controller名を取得できます。

例えば以下では、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 ルートを作成する

前の記事
次の記事