コントローラでもビューでも使いたいメソッドはどこに置く?

Railsでは application.rb に定義したメソッドは,どのコントローラからも呼び出すことができる。application_helper.rb に定義したメソッドは,どのビューからも呼び出すことができる(application_helper.rb に定義したメソッドをコントローラから呼び出したり,application.rb に定義したメソッドをビューから呼び出すことはできない)。
コントローラ/ビューの双方から呼び出すメソッドを定義したいときはどうするのか。libディレクトリ内に入れればいいみたい。ここにクラス名とファイル名を一致させた .rb ファイルを置いておくと,クラスメソッドを require 無しで呼び出すことができる。便利。

class Utility
  def self.pr(arg)
    puts arg
  end
end

という定義を書いたUtility.rbをlibディレクトリに置けば,いきなり「Utility.pr('foo')」と書ける。でも関数的に使えるapplication.rbやapplication_helper.rbに定義したメソッドと比べると冗長にも思える。ならば

def pr(arg)
  puts arg
end

と,クラス定義をとっぱらっちゃって,その代わりにenvironment.rbの最後でrequire 'Utility'した方が「pr('bar')」と関数的に書けて便利かも。他にも何かいいやり方がないかなあ。