コントローラとヘルパでメソッドを共有
コントローラとビューで同じメソッドを使いたいことがわりとあります。Validationとか文字列変換とか。そういうとき、コントローラ部(application.rb)に置くか、ヘルパ部(application_helper.rb)に置くか悩むところですが、メソッド自体はたぶん軽量なので(決め付け)、ヘルパに置くことにしています。
呼び出し方
application_helper.rbに置いてあるので、ビューで使う分には何の問題もありませんが、コントローラから使おうとすると、『NoMethodError』になってしまいます。
class SessionsController < ApplicationController include ApplicationHelper def is_another_ipaddress? if is_right_ipaddress? # ← これがヘルパのメソッド end end
『include』重要、ということでした。(いつも使用するメソッドの直前で『include』してますが、クラスの先頭で『include』するのと何か違いがあるんでしょうか?)