我是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ñol".html_safe, "es"]]
但是当我跑步时,我收到此错误消息:
uninitialized constant ActionView::CompiledTemplates::LANGUAGES
我认为问题出在LANGUAGE
,因为rails不知道,但我不知道我是否可以这样做。
我使用ruby 1.9.2和rails 3.0.5。
拜托,我需要帮助。
答案 0 :(得分:1)
你可以在视野中试试::LANGUAGES
吗?
但我认为更好的做法是在应用程序助手中指定语言选择辅助方法。
帮手:
def languages_select_tag(name = 'set_locale')
languages = [["English","en"],["Españ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)