2011-02-08 23 views
1

我正在使用Ruby on Rails 3,并试图使用名称空间实现模块。尝试使用名称空间实现模块

在我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) 

什么是wro NG?


在模块声明我也tryed这些

def Authorizations::message 
... 

# or 

def message 
    ... 

,以及那些不工作。

回答

2

的问题是在RAILS_ROOT/config/application.rb。只需以这种方式加载lib/文件夹:

config.autoload_paths += %W(#{config.root}/lib) 
1
module Authorizations 
  def message 
    return "flash_message" 
  end 
end 

然后

Authorizations::message 

,或者包含在类,只是

... = message 
+0

它不适用于我。无论如何,你能更清楚吗?也许这是因为... – user502052 2011-02-08 07:48:19

相关问题