【问题标题】:Should a class/module in lib be required?是否需要 lib 中的类/模块?
【发布时间】:2010-09-12 10:51:22
【问题描述】:

我刚刚在我的 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自动加载的......

【问题讨论】:

    标签: ruby-on-rails


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2021-09-13
      • 2012-02-12
      • 1970-01-01
      • 1970-01-01
      • 2015-02-05
      • 2019-09-27
      • 1970-01-01
      • 1970-01-01
      • 2016-04-22
      相关资源
      最近更新 更多