在一个地方定义Ruby/RoR中的常量的最佳方法

Sah*_*lly 1 ruby ruby-on-rails-3

我有多个类(4-5)使用相同的常数值,比如PI = 3.14.在Ruby和RoR应用程序中在一个地方定义该常量的最佳方法是什么?

我是否使用给定的Constant构造一个模块并包含在使用它的所有类中?

什么是最佳实践和标准的Ruby或RoR方式?

Ser*_*sev 6

您可以在一个地方定义它,然后直接引用它,而不是在任何地方包含此常量

# config/initializers/constants.rb, for example.
module Constants
  PI = 3.1415926535897932384626433832795028841971
end

# app/models/circle.rb
class Circle
  attr_reader :radius

  def area
    Constants::PI * radius ** 2
  end
end
Run Code Online (Sandbox Code Playgroud)

  • "有没有办法让它成为Hierarchical"当然,只需在模块中定义模块.这是基本的红宝石. (2认同)