I want a list to be available to the whole application, so I put it in constants.rb:
hebrew_consonants = ["א", "ב", "ג", "ד", "ה", "ו", "ז", "ח", "ט", "י", "ך", "כ", "ל","ם","מ","ן", "נ", "ס", "ע", "ף", "פ", "ץ", "צ", "ק", "ר", "ש","ת"]
In application_controller.rb, I use the list as follows:
def is_hebrew?(query)
(0...query.length).each do |index|
return true if hebrew_consonants.include?(query[index])
end
return false
end
I restarted the server, and the app complained that it didn’t know about the list. I put dollar signs before its declaration and its reference ($hebrew_consonants), and it worked. With my other constants, they just work. I guess I thought they were supposed to be global variables just by virtue of being in that class. Why is this one behaving differently?
Thank you
First make sure your
constants.rbfile is in/config/initializers/. Second, try using all caps forhebrew_constants. From the comments in this SO question it sounds like the all caps is necessary.