我正在使用rubyonrails3,并尝试使用名称空间实现一个模块。
在我的lib/文件夹中,我有一个authorization.rb文件:

module Authorizations
  def Authorizations.message
    return "flash_message"
  end
end

在我的控制器里我有:
class Users::AccountsController < ApplicationController # 'Users' is the namespace
  include Authorizations

  def create
    ...
    flash.now[:notice] =  Authorizations.message
  end
end

当我运行create方法时,会得到以下错误:
NoMethodError (undefined method 'message' for Authorizations:Module)

怎么了?
在模块语句中,我还尝试了
def Authorizations::message
 ...

# or

def message
  ...

而且这些也不起作用。

最佳答案

问题出在RAILS_ROOT/config/application.rb中以这种方式加载lib/文件夹:

config.autoload_paths += %W(#{config.root}/lib)

关于ruby-on-rails - 尝试使用 namespace 实现模块,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4928664/

10-12 05:16