2012-04-17 131 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) 
相關問題