2012-12-04 13 views
5

私はこのようなコードを持っています。モジュールのスコープ外のオブジェクトを使用

class User < ActiveRecord::Base 
end 

module Foo 
    class User 
    end 
end 

module Foo 
    class DoesSomethingWithActiveRecordUser 
    def initialize user_id 
     User.find(user_id) 
    end 
    end 
end 

私はundefined method 'find' for Foo::Userのようなものを言うエラーメッセージが表示されますFoo::DoesSomethingWithActiveRecordUser.new(1)を呼び出した場合。

ActiveRecordユーザをFooから電話するにはどうすればよいですか?

ありがとうございました。このよう

答えて

17

::User.find(user_id) 
+0

は、私はそれを試してみました、それは動作しませんでした知っています。しかし、今それはそうです。なぜ/これが何をしているのかに関するいくつかの文書を指摘できますか? – mwoods79

+2

::あなたはトップネームスペースにアクセスしています。さもなければ、rubyはあなたの現在のモジュールを調べます。 –

+0

私はこれに関する書類を特に見つけることはできませんが、@ ylan-sが指摘しているようにかなりシンプルです。クラス/モジュール名前空間のルートへの参照を固定するだけです。 –

関連する問題