Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to use an HTML entity in a Rails "content_tag" attribute?

I've got a Rails 3 helper which needs to generate elements which might have HTML entities in the attribute values. For example:

content_tag(:input, nil, :type => 'button', :value => 'Redo ↻')

I end up with this: <input type="button" value="Redo &#x21bb;" />
but what I want is: <input type="button" value="Redo ↻" />.

How can I tell Rails not to escape HTML entities in my content tag attributes?

like image 609
maerics Avatar asked Jul 25 '13 23:07

maerics


1 Answers

By default rails escapes the content before printing it. You have to explicitly declare the content is safe to ouput:

You can do it using the raw helper, or the string method html_safe:

content_tag(:input, nil, :type => 'button', :value => 'Redo &#x21bb;'.html_safe)

or

content_tag(:input, nil, :type => 'button', :value => raw('Redo &#x21bb;'))
like image 193
polmiro Avatar answered Oct 11 '22 20:10

polmiro