Ruby on Rails3 libにファイルを追加したが、自動で読み込まれなくて困った
libにファイルを追加しコントローラからそのファイルのメソッドを使おうとしたら、読み込めなくて困った。
[環境]
Windows8
Ruby 1.9.3(p125)
Ruby on Rails 3.2.9
libフォルダの直下にsub_account.rbファイルを追加し、その中にSubAccountクラスを定義。
Accountコントローラからそのクラスのメソッドを使おうとしたら、ページにアクセスすると、下記のようなエラーが表示された。
uninitialized constant AccounControllert::SubAccount
調べてみたら、rails3ではlib以下は自動的にインクルードされないので、明示的に示す必要があるようだ。
config\initilizerに「custom_requires.rb」というファイルを作成して下記のように記述する。
require 'sub_account.rb'
railsサーバを再起動して再度ページにアクセスすると、うまくいきました。
参考:
Rails3 で restful-authentication | Fusic Developers' Weblog