2010-09-12 73 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