是否需要lib中的类/模块?

时间:2010-09-12 10:51:23

标签: ruby-on-rails

我刚在Rail 3.0.0应用程序库文件夹中写了一个小模块:

module AdminFilters

  def verify_is_admin
    if current_user.nil? || current_user.role != User::Role::ADMIN
      redirect_to :root, :alert => "You don't have enough permissions"
    end
  end

end

为了让我的所有控制器都可以使用它:

class ApplicationController < ActionController::Base
   protect_from_forgery

   require "admin_filters"
   include AdminFilters

end

如果我删除了require行,rails就会这样抱怨:

uninitialized constant ApplicationController::AdminFilters

这是正常行为吗?我认为lib文件夹中的任何rb文件都是由rails自动加载的......

1 个答案:

答案 0 :(得分:2)

是的,它是在Rails 2.x.x中自动加载的,但Rails 3不再加载来自lib/的文件。您应该考虑将文件放入config/initializers目录。