我正在使用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
答案 0 :(得分:0)
在几个地方定义常量似乎很笨拙。我甚至不明白为什么你需要这个。如果您提供更多上下文,可以提供更好的解决方案。
无论如何,一个技巧可能是创建一个Hash
的常量。然后在你的app中的任何地方你都可以定义/重新定义它的内容。类似的东西:
CONFIG = { :foo => "bar" }
然后在其他任何地方:
CONFIG[:foo] ||= baz
编辑:
提供宝石上下文后,我会说你最好避免在模型级别包含常量:如果很多模型使用它,你不必担心。
例如,在主acts_as_something.rb
文件中的应用程序级别定义它。