带有 i18n 翻译的 Rails select_tag

Lut*_*Lut 2 ruby-on-rails internationalization rails-i18n ruby-on-rails-4

我有以下 select_tag 并希望翻译标签。我正在使用 Rails 国际化 (I18n) API

现在,这段代码可以在我需要翻译选项标签时使用。

<%=  select_tag "object", 
 "<option value=address>Address</option>
  <option value=Orden>Orden</option>".html_safe %> 
Run Code Online (Sandbox Code Playgroud)

我试过了:

<%=  select_tag "object", 
 "<option value=address><%= t('address').capitalize %></option>
  <option value=Orden>Orden</option>".html_safe %> 
Run Code Online (Sandbox Code Playgroud)

但我收到语法错误。我也试过:

<%=  select_tag "object", 
 "<option value=address> t('address').capitalize </option>
  <option value=Orden>Orden</option>".html_safe %> 
Run Code Online (Sandbox Code Playgroud)

最后一个不会翻译,只是把字符串 't('address').capitalize'

有什么建议吗?

Bla*_*son 5

你应该看看 options_for_select(args)

http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html#method-i-options_for_select

options_for_select([[t('address'), "address"], ["orden", "orden"]], params[:the_selected_one])
Run Code Online (Sandbox Code Playgroud)

你会这样做:

<%=  select_tag("object", options_for_select([[t('address'), "address"], ["orden", "orden"]], param[:the_selected_one])) %>
Run Code Online (Sandbox Code Playgroud)