2012-12-04 15 views
5

Böyle bir kod var. Ben Foo::DoesSomethingWithActiveRecordUser.new(1) ararsamModüller kapsamınızın dışından bir nesne kullanın

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 

Ben undefined method 'find' for Foo::User gibi bir şey şeklinde bir hata mesajı alabilirsiniz.

ActiveRecord Kullanıcısını Foo içinden nasıl ararım?

Teşekkürler. Bunun gibi

cevap

17

:

::User.find(user_id) 
+0

ben bunu denedim ve işe yaramadı biliyorum. Ama şimdi öyle görünüyor. Bunun neden/nasıl olduğuyla ilgili bazı belgelere işaret edebilir misiniz? – mwoods79

+2

Hazırlayan :: ile en üst isim-alanına erişiyorsunuz. Aksi takdirde, yakutunuz mevcut modülünüze bakacaktır. –

+0

Bu konuyla ilgili herhangi bir belge bulamıyorum, ancak ylan'ın işaret ettiği gibi oldukça basit. Sadece sınıf/modül ad alanındaki kök referansını sabitler. –

İlgili konular