使用“||”声明常量值

时间:2011-08-06 14:42:12

标签: ruby-on-rails ruby ruby-on-rails-3 constants

我正在使用Ruby on Rails 3.0.9,我正在开发一个插件。我想知道是否“正确”陈述这样的常数值(注意||):

CONSTANT_NAME ||= "Constant_value"

这是否适当?确保接近上述情况?

P.S。:我想这样做是为了避免在Apache error_log文件中记录如下的警告消息:

/<RAILS_ROOT>/vendor/plugins/sample_plugin/lib/sample.rb:52: warning: already initialized constant CONSTANT_NAME

1 个答案:

答案 0 :(得分:0)

在几个地方定义常量似乎很笨拙。我甚至不明白为什么你需要这个。如果您提供更多上下文,可以提供更好的解决方案。

无论如何,一个技巧可能是创建一个Hash的常量。然后在你的app中的任何地方你都可以定义/重新定义它的内容。类似的东西:

CONFIG = { :foo => "bar" } 

然后在其他任何地方:

CONFIG[:foo] ||= baz

编辑:

提供宝石上下文后,我会说你最好避免在模型级别包含常量:如果很多模型使用它,你不必担心。

例如,在主acts_as_something.rb文件中的应用程序级别定义它。