1

我是 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。

拜托,我需要帮助。

4

2 回答 2

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)" %>
于 2012-04-17T23:20:30.343 回答
0

我有同样的问题。我通过添加来修复它

def languages
  LANGUANGES
end

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

options_for_select(languages, I18n.locale.to_s)
于 2015-09-01T10:55:45.067 回答