Rails select_tag 带 i18n 翻译

Rails select_tag with i18n translation

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

现在,无论我需要翻译选项标签,这段代码都能正常工作。

<%=  select_tag "object", 
 "<option value=address>Address</option>
  <option value=Orden>Orden</option>".html_safe %> 

我试过:

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

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

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

最后一个就不翻译了,直接把字符串't('address').capitalize'

有什么建议吗?

你应该看看 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])

你会做:

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

尝试使用 options_for_select 而不是原始 HTML 选项。

检查下面的代码。

select_tag "object", options_for_select([t('address').capitalize, "address"], [t('order').capitalize, "order"])

您还可以使用模型来构建 Select 选项。请查看下面的文档以获取更多信息。

http://apidock.com/rails/ActionView/Helpers/FormTagHelper/select_tag