helperメソッドをview・controllerで使う
helperメソッドの使い方
ヘルパーメソッドの使い方をちゃんと理解できていなかったので備忘録として残します。
目次
1,viewでヘルパーメソッドを使う
2,controllerでヘルパーメソッドを使う
3,controllerでヘルパーメソッドを定義する
1,viewで使う
Railsのhelper.rbはviewで使うメソッドを集めたモジュール(メソッドの塊)のイメージです。
helper.rbで作っておけば、どのviewからも使うことが可能になります。
例えば、、
sessions_helper.rb
application.html.erb
sessions_helperで設定しておいて、htmlの条件で使用することでhtml側の記述をhelperでまとめることができます。複数箇所で使う場合に、同じコードを描かずに済むのでより見やすいコードにすることができます。
2,controllerで使う
ヘルパーメソッドをcontrollerで使いたい場面もあります。
ただし、いきなりcontrollerにヘルパーメソッド内のメソッドを記述しても「そんなメソッドないよ!」と怒られてしまうので、controller内で使いたい場合は、使いたいcontrollerに`include helper名`を入れます。
今回は例でusers_controllerで記述しましたが、
全てのcontrollerで使えるようにしたい場合はapplication_controllerで記述するなどしてください。これで、controllerの各メソッド内でヘルパーメソッドが使えるようになります。
3,controllerでヘルパーメソッドを定義する
controllerでもviewでも頻繁に使用するメソッドがある場合に、controller内に`helper_method :メソッド名`とすることで、controller内でも使えるヘルパーメソッドとして記述することもできます。
今回はapplication_controllerに記述したので、全てのviewとcontrollerから呼び出せるメソッドとして使えるようになります。
最後まで見ていただきありがとうございます。
もし何かおかしなところや気になるところがあればコメントお願いします!