【rails】コントローラーで定義したメソッドをビューでも使いたい

やりたいこと

コントローラーで定義したメソッドをビューでも使いたいと思いました。

わざわざインスタンス変数に格納してビューに渡すのではなく、ビューからコントローラーのメソッドが使えると楽な場面も出てくるのではないかと思います。

結論

コントローラーでhelper_methodを使うことで可能です。

実装

コントローラー側(今回はapplication_controller.rbに実装しました)

class ApplicationController < ActionController::Base
 helper_method :gender ・・・②

 def gender(gender_num) ・・・①
  if gender_num === 0
   '男'
  elsif gender_num == 1
   '女'
  elsif gender_num == 2
   'その他'
  end
 end
end

①通常のメソッド定義の方法で、ビューで使いたいメソッドを定義します。

helper_methodを使って、①で定義したメソッド(ビューで使いたいメソッド)を指定します。

コントローラー側の実装は以上です。

これでビュー側でメソッドを指定することができます。

<p><%= gender 0 %></p>// <p>男</p>
以上!!!!!!!