Giá trị trả về của khối sẽ trở thành nội dung của nó. Chỉ dòng cuối cùng được trả lại.
Bạn phải nối hai dây cùng với +
để tạo ra một giá trị trả về duy nhất:
link_to("#", class: "add_fields btn btn-success") do
name + content_tag(:i, "", class: "icon-plus icon-white")
end
Bạn sẽ cần phải sử dụng html_safe
để ngăn chặn các nội dung của thẻ của bạn tự động được mã hóa HTML:
link_to("#", class: "add_fields btn btn-success") do
name + content_tag(:i, "", class: "icon-plus icon-white").html_safe
end
Phát biểu từ trải nghiệm cá nhân với Twitter Bootstrap, tôi biết bạn sẽ cần một khoảng trống giữa name
và content_tag
:
link_to("#", class: "add_fields btn btn-success") do
name + ' ' + content_tag(:i, "", class: "icon-plus icon-white").html_safe
end
Ngoài ra, nếu bạn đang ở trong một mẫu ERB, bạn có thể ra cả hai giá trị với <%=
:
<%= link_to(...) do %>
<%= name %>
<%= content_tag(...) %>
<% end %>
nếu im làm điều này cho thấy nút của tôi: 'foo ' – wintersolutions
Bạn có thể sử dụng an toàn HTML để đánh dấu chuỗi của bạn như không đòi hỏi mã hóa HTML. – meagar
Tôi đã thử nghiệm nó với html_safe quá và nó không hoạt động, nhưng điều này hoạt động: 'link_to (" # ", class:" add_fields btn btn-success ") làm (name + '' + content_tag (: i," ", : class => "icon-plus icon-white")) html_safe end' nếu bạn muốn bạn có thể cập nhật câu trả lời của bạn, cảm ơn bạn rất nhiều! – wintersolutions