私はこれを機能させようとしています:
link_to("#", class: "add_fields btn btn-success") do
name
content_tag(:i, "", :class => "icon-plus icon-white")
end
iしかし、 (twitter-bootstrap css)で指定されたアイコンのみが表示され、のテキストは表示されませんname。何が間違っているのでしょうか。
私はこれを機能させようとしています:
link_to("#", class: "add_fields btn btn-success") do
name
content_tag(:i, "", :class => "icon-plus icon-white")
end
iしかし、 (twitter-bootstrap css)で指定されたアイコンのみが表示され、のテキストは表示されませんname。何が間違っているのでしょうか。
ブロックの戻り値がその内容になります。最後の行だけが返されます。
+単一の戻り値を生成するには、2つの文字列をで連結する必要があります。
link_to("#", class: "add_fields btn btn-success") do
name + content_tag(:i, "", class: "icon-plus icon-white")
end
html_safeタグのコンテンツが自動的にHTMLエンコードされないようにするためにを使用する必要があります。
link_to("#", class: "add_fields btn btn-success") do
name + content_tag(:i, "", class: "icon-plus icon-white").html_safe
end
nameTwitter Bootstrapの個人的な経験から言えば、との間にスペースが必要になることを私は知っていますcontent_tag:
link_to("#", class: "add_fields btn btn-success") do
name + ' ' + content_tag(:i, "", class: "icon-plus icon-white").html_safe
end
または、ERBテンプレート内にいる場合は、次のように両方の値を出力できます<%=。
<%= link_to( ... ) do %>
<%= name %>
<%= content_tag( ... ) %>
<% end %>
私が考える2つのことがあります:
1)ブロックの内容全体link_toをサニタイズする必要があります。
link_to("#", class: "add_fields btn btn-success") do
(name + content_tag(:i, "", class: "icon-plus icon-white")).html_safe
end
2)入力が期待できますnilか?
html_safeオブジェクトを呼び出すと、物事が壊れnilます。rawこれが発生する可能性がある場合に使用します。
link_to("#", class: "add_fields btn btn-success") do
raw(name + content_tag(:i, "", class: "icon-plus icon-white"))
end
font-awesomeなどを使用している場合は、アイコンが表示されない場合があります。しかし、このソリューションは機能しました。
link_to :sort => column, :direction => direction do
"#{title} #{content_tag(:i, "", class: "fa fa-chevron-up") }".html_safe
end