0

我希望整个应用程序都可以使用一个列表,所以我把它放在了 constants.rb 中:

hebrew_consonants = ["א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "ך", "כ", "ל","ם","מ","ן", "נ", "ס", "ע", "ף", "פ", "ץ", "צ", "ק", "ר", "ש","ת"]

在 application_controller.rb 中,我使用如下列表:

def is_hebrew?(query)
    (0...query.length).each do |index|
        return true if hebrew_consonants.include?(query[index])
    end
    return false
end

我重新启动了服务器,该应用程序抱怨它不知道该列表。我在它的声明和它的引用($hebrew_consonants)之前加上了美元符号,它起作用了。使用我的其他常量,它们就可以工作。我想我认为它们应该是全局变量,只是因为在那个类中。为什么这个行为不同?

谢谢

4

1 回答 1

1

首先确保您的constants.rb文件位于/config/initializers/. 其次,尝试将所有大写字母用于hebrew_constants. 从这个SO question中的评论来看,听起来全部大写是必要的。

于 2012-05-07T09:19:03.497 回答