1

我有猴子在初始化器中修補了ActsAsTaggableOn插件的Tag類。一切工作正常,但我得到我添加了一個恆定的警告標籤:Rails 3.1:Model初始化器中的常量會導致警告

配置/初始化/ acts_as_taggable_on_extensions.rb:

class Tag < ActiveRecord::Base 

    ... some stuff ... 

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

    ... some more stuff .... 

end 

的警告是:配置/初始化/ acts_as_taggable_on_extensions.rb:136:警告:已經初始化常量TAG_TYPES

如何擺脫此警告?

我對Ruby 1.9.2,Rails 3.1 RC4。

+0

的Rails 3.1的最新版本是RC5,你應該考慮儘快更新prereleases作爲有可用的更新。 – Aurril

+0

在我看來,你的文件不止一次被加載。你可以檢查是否是這種情況? – Chirantan

+0

@Aurril:我在rc5的資產管道上遇到了麻煩,我回到了rc4。 – Nico

回答

0

您可以通過將它們添加到TAG_TYPES數組來添加自己的標籤類型。

TAG_TYPES << :a << :b << :c 
TAG_TYPES.uniq! 
2

試試這個:

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

這樣做,thx ;-)。只是想知道爲什麼它首先被加載兩次。 – Nico

+0

好吧,只需檢查您所期望的值是您在此處指定的值,而不是其他值。在後一種情況下,問題不在於代碼已經過兩次評估,而是您可能重新分配了預先分配的常量... –

+0

此常量僅分配一次。它的價值觀是正確的。 – Nico

相關問題