ruby - 检查 Ruby 类中是否已定义常量的正确方法

标签 ruby constants ruby-1.8.7 class-constants

我有一些类在我的 Rails 应用程序中作为装饰器实现,该应用程序位于 Ruby 1.8.7 上。我不断收到警告 - 警告:已经初始化常量 ABC 。这里 ABC 是常量的名称。

为了解决这个问题,我使用 const_defined?方法如本answer中建议的.

我的疑问是 - const_define? 是检查 ruby​​ 中是否已定义类常量的正确方法吗?我清楚地看到它可以用来检查模块常量。

我发现 define? 方法也可以像 answer 中提到的那样使用。 。我尝试查找 define? 的文档,但根据迄今为止的搜索,我没有看到其文档的链接。

我不确定在两者中选择哪一个,因为目前我看不出两者之间有明显的区别。

有人可以建议在这种情况下最好使用哪种方法吗?为什么?

最佳答案

关键字已定义?已记录here .

最好询问它是否是常量,如果它是常量很重要,则使用 const_define?。如果您只关心它是否已定义,则使用关键字 define?

关于ruby - 检查 Ruby 类中是否已定义常量的正确方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25608618/

相关文章:

sql - 使用 Ruby Geocoder 检索附近的用户和返回距离

ruby - 如何使用 Ruby OpenSSL 验证 X.509 证书?

c++ - 怀疑用静态常量变量替换宏

ruby - 如何使这个正则表达式更通用?

ruby - 如何在 Ruby 1.8.7 中将 Microsoft Office "Smart"或 "Curly"引号/撇号转换为 ASCII 或 UTF-8 "Straight"引号/撇号?

javascript - 如何在 ROR 中设置窗口名称?

ruby - 为 Heroku Ruby Sinatra 应用程序强制执行 HTTPS 的最简单方法

c++ - 为什么这个指向常量指针的指针赋值是非法的?

c++ - 为什么与 C++ 相比,C 禁止向指针到指针的两个级别添加 const 限定?

ruby - 使用数组中的键访问散列