Rails:I18n在占位符中产生奇怪的结果

时间:2013-01-13 16:22:10

标签: ruby-on-rails internationalization placeholder

我在视图中有以下代码:

<%= form_tag searches_path, :method => 'get', :class => "nav_search" do %>
  <%= hidden_field_tag "type", "publications" %>
  <%= text_field_tag :query, nil, :placeholder => t('publications') %>
<% end %>

这在我的en.yml文件中:

en:
  views:
    layout:
      publications: 'publications'

虽然I18n在网站的其他地方工作,每当我把它放在像这样的占位符时,我得到奇怪的结果。文本字段将其作为占位符包含:

<span class=

在占位符之外跟随此文本:

Publications" type="text" /> 

知道会发生什么事吗?

2 个答案:

答案 0 :(得分:3)

这里最简单的方法是指定完整的翻译密钥:

<%= text_field_tag :query, nil, :placeholder => t('views.layout.publications') %>

答案 1 :(得分:2)

在Rails 4.2中,您现在可以这样做:

<%= f.text_field :query, placeholder: true %>

并且i18n将从以下位置拉出占位符:

en.helpers.placeholder.model_name.query