使用模块范围外部的对象

mwo*_*s79 6 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
Run Code Online (Sandbox Code Playgroud)

如果我打电话,Foo::DoesSomethingWithActiveRecordUser.new(1)我会收到一条错误信息undefined method 'find' for Foo::User.

如何从内部呼叫ActiveRecord用户Foo

谢谢.

Chr*_*erg 21

像这样:

::User.find(user_id)
Run Code Online (Sandbox Code Playgroud)

  • 通过前置::您正在访问顶级域名空间.否则,ruby会查看您当前的模块. (2认同)