【问题标题】:Rails select_tag with i18n translation带有 i18n 翻译的 Rails select_tag
【发布时间】:2017-03-30 00:54:00
【问题描述】:

我有以下 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'

有什么建议吗?

【问题讨论】:

    标签: ruby-on-rails ruby-on-rails-4 internationalization rails-i18n


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      尝试使用 options_for_select 代替原始 HTML 选项。

      检查下面的代码。

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

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

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

      【讨论】:

        猜你喜欢
        • 2011-02-02
        • 1970-01-01
        • 2016-10-10
        • 1970-01-01
        • 2017-01-16
        • 1970-01-01
        • 2015-04-20
        • 1970-01-01
        • 2015-03-25
        相关资源
        最近更新 更多