2012-04-17 129 views
1

林在轨道新,我试图做这application.html.rb:未初始化的常量::的ActionView :: CompiledTemplates

<%= select_tag 'set_locale', 
    options_for_select(LANGUAGES, I18n.locale.to_s), :onchange => 'this.form.submit()' %> 
     <%= submit_tag 'submit' %> 
     <%= javascript_tag "$$('.locale input').each(Element.hide)" %> 

,我在配置/初始化目录中的文件i18n.rb中,这个文件的代码是:

#encoding: utf-8 
I18n.default_locale = :en 

LANGUAGES = [ 
    ["English",     "en"], 
    ["Espa&ntilde;ol".html_safe, "es"]] 

但是当我运行我收到此错误信息:

uninitialized constant ActionView::CompiledTemplates::LANGUAGES

我认为问题是LANGUAGE,因为钢轨不知道它,但我不知道我想做什么。

即时通讯使用红宝石1.9.2和轨道3.0.5。

请,我需要帮助。

回答

1

您能试试::LANGUAGES吗?

但我认为更好的做法是在应用程序助手中指定语言选择助手方法。

在助手:

def languages_select_tag(name = 'set_locale') 
    languages = [["English","en"],["Espa&ntilde;ol".html_safe, "es"]] 
    options = options_for_select(languages, I18n.locale.to_s) 
    select_tag(name, option, :onchange => 'this.form.submit()') 
end 

鉴于:

<%= languages_select_tag %> 
<%= submit_tag 'submit' %> 
<%= javascript_tag "$$('.locale input').each(Element.hide)" %> 
+0

大家好,我的朋友复古,非常感谢你的帮助,你的代码做工精细,据我所知,常数必须在课堂上和模块,但我把这些代码从书:敏捷Web Rails 4版本的开发我不认为这是作者的错误,你怎么看?再次感谢 – josedes 2012-04-18 14:58:35

+0

更新josedes ^ – retro 2012-04-18 21:17:35

0

我有同样的问题。我通过添加

def languages 
    LANGUANGES 
end 

在i18n.rb文件中。 然后用它

options_for_select(languages, I18n.locale.to_s) 
相关问题