私はこれを機能させようとしています:
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
name
Twitter 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