Reputation: 1194
I'm trying to customize the output of a simple_form association, basically I need to display a checkbox label on two lines. My idea was adding a "br" tag into the "label", but unfortunately it gets escaped so it display actually "br" instead of going to a new line
I use a lambda for customizing the label output
<%= f.association :item, :as => :check_boxes, :collection => current_user.items, :label => false, :label_method => lambda { |item| "#{item.city.capitalize},<br> #{item.address}" }%>
this produces an escaped br into the label string, how could I display the label on two lines?
Upvotes: 17
Views: 13701
Reputation: 1227
For those of you looking to have custom html in elements as the title of the OP's question suggests, you can do this:
= f.input(:Foo, label: "Foo <span>(Blah helper text blah)</span>".html_safe)
Upvotes: 15
Reputation: 3083
call html_safe
method on the string you want not to be escaped.
<%= f.association :item, :as => :check_boxes, :collection => current_user.items, :label => false, :label_method => lambda { |item| "#{item.city.capitalize},<br> #{item.address}".html_safe }%>
Upvotes: 33
Reputation: 34135
Does html_safe
help?
<%= f.association(....).html_safe %>
if not, then post an example app on github showcasing this issue, so we can debug it
Upvotes: 2