Ruby on rails Rails 3.1:初始化器中的模型常量导致警告

Ruby on rails Rails 3.1:初始化器中的模型常量导致警告,ruby-on-rails,warnings,constants,ruby-on-rails-3.1,initializer,Ruby On Rails,Warnings,Constants,Ruby On Rails 3.1,Initializer,我已经在一个初始值设定项中修补了ActsAsTaggableOn插件的标记类。所有工作正常,但我收到一条警告,警告我在标签中添加了一个常量: config/initializers/act_as_taggable_on_extensions.rb: class Tag < ActiveRecord::Base ... some stuff ... TAG_TYPES = [:a, :b, :c] ... some more stuff .... end cl

我已经在一个初始值设定项中修补了ActsAsTaggableOn插件的标记类。所有工作正常,但我收到一条警告,警告我在标签中添加了一个常量:

config/initializers/act_as_taggable_on_extensions.rb:

 class Tag < ActiveRecord::Base

   ... some stuff ...

   TAG_TYPES = [:a, :b, :c]

   ... some more stuff ....

 end
class标记
警告是:config/initializers/act_as_taggable_on_extensions.rb:136:warning:ready initialized constant TAG_type

我怎样才能摆脱这个警告


我使用的是ruby 1.9.2、Rails 3.1 rc4。

您可以将自己的标记类型添加到标记类型数组中

TAG_TYPES << :a << :b << :c
TAG_TYPES.uniq!
TAG\u类型试试这个:

TAG_TYPES ||= [:a, :b, :c]

Rails 3.1的最新版本是RC5,一旦更新可用,你就应该考虑更新它。我认为你的文件不止一次加载。你能检查一下情况吗?@Aurril:我在rc5中的资产管道有问题,我回滚到rc4。@Chirantan:是的,这也是我怀疑的,只是不知道在哪里和为什么。这就成功了,thx;-)。只是想知道为什么一开始会加载两次。好的,只需检查您期望的值是否是您在此处指定的值,而不是其他值。在后一种情况下,问题不在于代码已经计算了两次,而在于您可能正在重新分配一个预先分配的常量……这个常量只分配了一次。它的值是正确的。