常量:Rails :: VERSION :: STRING

rtf*_*inc 1 ruby-on-rails

我知道如何找到我拥有的rails版本:

> Rails::VERSION::STRING
> "2.3.2"
Run Code Online (Sandbox Code Playgroud)
  • 有人可以为我分解/解释Rails :: VERSION :: STRING吗?
  • 什么是第一部分"Rails"?
  • "::"是什么意思/做什么?
  • 这是全球常数吗?
  • 这与"RUBY_VERSION"有什么不同?(构造,而不是意义.即没有"::")
  • 如何列出/查找所有全局常量?

谢谢.

Pat*_*zie 10

Rails是一个模块.::与调用模块对象上的方法的点运算符相比,使您可以访问模块的静态成员或方法.(所有类都是Ruby中的对象.)STRING同样是VERSION的静态成员.

这些行为类似于全局常量(它们是常量并且只有它们的一个副本)但它们不是Ruby中该术语通常含义中的全局常量.它们是Rails模块上的静态字段.

它们的作用域是本地的,以避免污染全局命名空间.RUBY_VERSION位于全局命名空间中.由于它是一种核心语言功能,没有人关心它们不能将这个名称用于自己的目的,但其他包应该避免把东西放在那里.

'Rails.constants'将为您提供其他Rails常量.