1

私はレールが初めてで、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できるかどうかわかりません。

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 に答える