2011-02-08 3 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 нг?


В заявлении модуля I также судимое эти

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

Смежные вопросы