如何在 Rails 3.2.3 中将 span 元素添加到 i18n 本地化标签



我想在 Rails 3.2.3 中的 i18n 本地化标签中添加一个 span 元素。

这就是我得到的:

<%= f.label :address, "<span class="optional">optional</span>".html_safe %>

但是,在输出中,它产生:

<label for="person_address">
  <span class="optional">optional</span>
</label>

我需要的是这个:

<label for="person_address">
  Address <span class="optional">optional</span>
</label>

谁能告诉我怎么做?

使用块形式并"手动"翻译属性名称:

<%= f.label :address do %>
  <%= f.object.class.human_attribute_name :address %>
  <span class="optional">optional</span>
<% end %>

注意

"标签"帮助程序中的第二个参数是标签的文本。 如果您这样做:

<%= f.label :address, "Address <span class="optional">optional</span>".html_safe %>

我认为它会正确显示。

您还可以将 html 添加到 yml 文件并在 yml 项上显式使用 .html_safe 它也可以工作。

<%= f.label :address, t('path.to.label').html_safe %>

我也想尝试一些使用javascript和css的东西 - 对字段进行分类并通过jquery或css :after添加到标签中。

最新更新