Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/xml/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby 使用模块范围之外的对象_Ruby_Ruby On Rails 3 - Fatal编程技术网

Ruby 使用模块范围之外的对象

Ruby 使用模块范围之外的对象,ruby,ruby-on-rails-3,Ruby,Ruby On Rails 3,我有这样的代码 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 class用户

我有这样的代码

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
class用户
如果我调用
Foo::doesMethingWithActiveRecordUser.new(1)
我会收到一条错误消息,上面写着类似于
未定义的Foo::User方法“find”

如何从
Foo
中调用ActiveRecord用户

谢谢。

像这样:

::User.find(user_id)

我知道我试过了,但没用。但现在似乎是这样。你能指出一些关于为什么/为什么这样做的文档吗?通过在::前面加上前缀,你正在访问顶级名称空间。否则,ruby将查看您当前的模块。我找不到任何专门关于此模块的文档,但正如@ylan-s所指出的,它非常简单。它只是在类/模块名称空间中锚定对根的引用。@mwoods79您可以看到一些关于这方面的问题。