首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Ruby/ RoR中同时定义常量的最佳方法

在Ruby/ RoR中同时定义常量的最佳方法
EN

Stack Overflow用户
提问于 2017-11-07 16:55:39
回答 3查看 948关注 0票数 1

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

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

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

EN

回答 3

Stack Overflow用户

发布于 2017-11-07 17:01:19

您可以只在一个地方定义它,然后直接引用它,而不是到处都包含这个常量

代码语言:javascript
复制
# 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
票数 7
EN

Stack Overflow用户

发布于 2017-11-07 17:39:19

在给定MyApp的情况下,您的所有应用程序类都应该在一个名称空间下。

因此,所有共享常量都可以在MyApp模块中声明:

代码语言:javascript
复制
module MyApp
  APP_CONST_1 = 42
  APP_CONST_2 = 3.14
  # ...
end

class MyApp::User
  def the_answer
    MyApp::APP_CONST_1 # 42
  end
end
票数 2
EN

Stack Overflow用户

发布于 2017-11-07 17:00:49

开始使用关注点吧,RubyOnRails有一个漂亮的模式来重构代码。

看看这个:

http://vaidehijoshi.github.io/blog/2015/10/13/stop-worrying-and-start-being-concerned-activesupport-concerns/

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47153612

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档