未初始化的常量ActionView :: CompiledTemplates ::

时间:2012-04-17 20:25:12

标签: ruby-on-rails ruby locale actionview

我是rails的新手,我尝试在application.html.rb中执行此操作:

 <%= 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)" %>

我在config / initializers目录下有i18n.rb文件,该文件的代码是:

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

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

但是当我跑步时,我收到此错误消息:

uninitialized constant ActionView::CompiledTemplates::LANGUAGES

我认为问题出在LANGUAGE,因为rails不知道,但我不知道我是否可以这样做。

我使用ruby 1.9.2和rails 3.0.5。

拜托,我需要帮助。

2 个答案:

答案 0 :(得分: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)" %>

答案 1 :(得分:0)

我遇到了同样的问题。我通过添加

来修复它
def languages
  LANGUANGES
end
在i18n.rb文件中

。 然后用它

options_for_select(languages, I18n.locale.to_s)