Ruby on rails 使用'说明常量值||';

Ruby on rails 使用'说明常量值||';,ruby-on-rails,ruby,ruby-on-rails-3,constants,Ruby On Rails,Ruby,Ruby On Rails 3,Constants,我正在使用RubyonRails3.0.9,我正在开发一个插件。我想知道这样声明一个常量值是否“正确”(请注意|): 上述方法是否正确 注意:我这样做是为了避免在Apache错误日志文件中记录如下警告消息: /<RAILS_ROOT>/vendor/plugins/sample_plugin/lib/sample.rb:52: warning: already initialized constant CONSTANT_NAME //供应商/plugins/sample\u plu

我正在使用RubyonRails3.0.9,我正在开发一个插件。我想知道这样声明一个常量值是否“正确”(请注意
|
):

上述方法是否正确

注意:我这样做是为了避免在Apache
错误日志
文件中记录如下警告消息:

/<RAILS_ROOT>/vendor/plugins/sample_plugin/lib/sample.rb:52: warning: already initialized constant CONSTANT_NAME
//供应商/plugins/sample\u plugin/lib/sample.rb:52:警告:已初始化常量\u名称

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

无论如何,一个技巧可能是创建一个常量作为
散列
。然后,您可以在应用程序中的任何位置定义/重新定义it内容。比如:

CONFIG = { :foo => "bar" } 
然后在其他任何地方:

CONFIG[:foo] ||= baz

编辑:

提供了gem上下文之后,我想说您最好避免在模型级别包含常量:如果许多模型都使用它,您就不必担心了


例如,在主
文件中的应用程序级别定义它,作为\u something.rb
文件。

看看ruby Memorization或check@Octopus Paul-我读了这篇文章,作者在文章中写了关于方法的备忘录。。。是否可以将记忆与常量值一起使用?在哪里分配该常量?为什么代码会执行不止一次?@Mladen Jablanović这是因为我正在实现一个“acts_as_something”插件,我的许多模型都被分配到“acts_as_something”。我需要它,因为我正在实现一个“acts_as_something”插件,我的许多模型被分配到“acts_as_something”。为什么不在应用程序级别而不是模型级别定义常量?这是因为这些常量专门与插件相关。我知道,但你可以在gem的更高级别定义常量。不,我不能在更高级别声明这些常量值,因为我的插件包含很多模块。。。但是,回到原来的问题,使用“| |”来表示常量值是否节省?
CONFIG[:foo] ||= baz