常量:Rails :: VERSION :: STRING

时间:2009-12-12 05:19:55

标签: ruby-on-rails

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

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

感谢。

1 个答案:

答案 0 :(得分:9)

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

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

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

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