我正在尝试在link_to调用中嵌入其他HTML,如此帖子Embed additional HTML inside of link_to call
中所示但是,我还想使用I18n。所以不要这样:
<%= link_to '<i class="icon-search"></i> Show'.html_safe, exercise_path(exercise), :class => 'btn btn-small' %>
我想在上面的示例中使用t(:show)
或I18n.t(:show)
而不是硬编码的Show
。但是,我无法弄清楚正确的语法。任何帮助将不胜感激。
答案 0 :(得分:9)
通过使用块语法,可以更轻松/更清晰地将其他项嵌入link_to
。 E.x。
<%= link_to exercise_path(exercise), :class => 'btn btn-small' do %>
<i class="icon-search"></i>
<%= t(:show).html_safe %>
<% end %>
答案 1 :(得分:0)
<%= link_to "<i class='icon-search'></i> #{t(:show)}".html_safe, exercise_path(exercise), :class => 'btn btn-small' %>
使用#{}
在字符串中嵌入ruby代码。
答案 2 :(得分:0)
使用原始功能,如下例
<%= link_to raw("<i class='icon-search'>some italic text </i> #{t(:show)}"), exercise_path(exercise), :class => 'btn btn-small' %>