2010-09-12 92 views
2

我刚刚在我的Rail 3.0.0应用程序库文件夹中写了一个小模块:是否需要lib中的类/模块?

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 ...

自动加载的

回答

2

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

+0

好吧,它的作品,thx! – Chris 2010-09-12 13:00:17

相关问题