コントローラとヘルパでメソッドを共有

コントローラとビューで同じメソッドを使いたいことがわりとあります。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』するのと何か違いがあるんでしょうか?)