2

を含んで、私はこのスレッドEmbed additional HTML inside of link_to callルビー - 国際化

に見られるようなのlink_toの呼び出しの内部で追加のHTMLを埋め込むしようとしているのlink_toの呼び出しの内部埋め込む追加のHTMLしかし、私はまた、国際化を使用したいと思います。だから、これに代えて:

<%= link_to '<i class="icon-search"></i> Show'.html_safe, exercise_path(exercise), :class => 'btn btn-small' %> 

私は、上記の例では代わりにハードコードさShowt(:show)またはI18n.t(:show)を使用したいと思います。私は、正しい構文を理解することに問題があります。どんな助けでも大歓迎です。

答えて

9

ブロックの構文を使用して、追加のアイテムをlink_toに埋め込むことが簡単で洗練された方法です。 E。

<%= link_to exercise_path(exercise), :class => 'btn btn-small' do %> 
    <i class="icon-search"></i> 
    <%= t(:show).html_safe %> 
<% end %> 
0

<%= link_to "<i class='icon-search'></i> #{t(:show)}".html_safe, exercise_path(exercise), :class => 'btn btn-small' %>

使用#{}文字列でRubyコードを埋め込むことができます。

+0

などの使用生の機能は、ありがとう、私はあなたの答えのように二重引用符を使用するとき、私は構文エラーを取得し、私は<%= 'で単一引用符を使用する場合{btn btn-small '%> '、{{t(:show}}'){{i class =" icon-search ">#{t}作業。私が間違っていることは何ですか? – diasks2

+0

申し訳ありませんが、私のソリューションが機能するには、 'class = 'icon-search''を一重引用符で行う必要がありました。しかし、johnernautの答えはとにかく良いです;)私は彼の答えでhtml_safeが必要とは思わない。 – Robin

0

ちょうど例以下

<%= link_to raw("<i class='icon-search'>some italic text </i> #{t(:show)}"), exercise_path(exercise), :class => 'btn btn-small' %>