【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>
以上!!!!!!!