ヘルパーメソッドの使い方をちゃんと理解できていなかったので備忘録。
Ruby on Railsのhelper.rbはviewで使うメソッドを集めたモジュール(メソッドの塊)のイメージです。
helper.rbで作っておけば、どのviewからも使うことが可能になります。
例えば、、
sessions_helper.rb
module SessionsHelper
def logged_in?
!@current_user.[nil](<http://d.hatena.ne.jp/keyword/nil>)?
end
end
application.html.erb
<% if logged_in? %>
<li><%= link_to "Home", "/" %></li>
<li><%= link_to "About", "/about" %></li>
sessions_helperで設定しておいて、htmlの条件で使用することでhtml側の記述をhelperでまとめることができます。複数箇所で使う場合に、同じコードを描かずに済むのでより見やすいコードにすることができます。
ヘルパーメソッドをcontrollerで使いたい場面もあります。
ただし、いきなりcontrollerにヘルパーメソッド内のメソッドを記述しても「そんなメソッドないよ!」と怒られてしまうので、controller内で使いたい場合は、使いたいcontrollerにinclude helper名
を入れます。
class UsersController < ApplicationController
include SessionsHelper
def make
if logged_in?
#........
else
#........
end
end
今回は例でusers_controllerで記述しましたが、