2011-02-08 5 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?


は、モジュールの声明では、私はまた、これらの

def Authorizations::message 
... 

# or 

def message 
    ... 

ともそれらが動作しないをしようと試みました。

答えて

2

問題がRAILS_ROOT/config/application.rbです。

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

そして

Authorizations::message 

またはクラスに含まれている場合、単に

... = message 
+0

この方法では、lib/フォルダをロードしてください。とにかくあなたはもっと明確になりますか?多分それはそのためです... – user502052

関連する問題