ruby - 在不明确提及其 namespace 的情况下引用类

标签 ruby namespaces

我在几个模块中有一个类:This::Is::A::Long::ClassName。有没有办法在一个脚本或方法中使 ClassName 可用而无需引用命名空间?而不是写:

This::Is::A::Long::ClassName.do_something
This::Is::A::Long::ClassName.do_something_else
This::Is::A::Long::ClassName.do_something_different

有以下可能吗?

include This::Is::A::Long
ClassName.do_something
ClassName.do_something_else
ClassName.do_something_different

最佳答案

如果您将模块用于命名空间,您发布的代码应该可以工作,请参见以下示例:

module Long
  module Name
    class ClassName
    end
  end
end

ClassName
# => ... uninitialized constant ClassName (NameError)

include Long::Name
ClassName
# => Long::Name::ClassName

关于ruby - 在不明确提及其 namespace 的情况下引用类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20993827/

相关文章:

c# - 'using Namespace'指令的解释

c# - 命名空间中不存在 Blazor 命名空间互操作

ruby-on-rails - Rails 时间比较

ruby-on-rails - 应禁用下拉选项中的第一个值 - Rails

ruby-on-rails - 验证失败后未添加类 field_with_errors 的 div 包装器

c# - 父命名空间中的类可以访问子命名空间中的类

java - 为什么我的 xpath 不起作用?

命名空间中允许使用 PHP 保留关键字? (公共(public),私有(private),默认)

ruby - 缩短 Ruby 中的 if-else 结构

ruby-on-rails - 从网络检测区域设置(列表分隔符)