Reputation: 673
I'm using Bootstrap's tooltip to show glyphicons.
Hardcoded, this works as expected
<%= link_to "<h2>test</h2>",
'#',
class: "tag-tooltip",
:data => {:toggle=>"tooltip"},
'data-original-title' =>
"<i class=\"icon-off icon-white\"></i> = SomeText
<i class=\"icon-info-sign icon-white\"></i> = SomeText
<i class=\"icon-ban-circle icon-white\"></i> = SomeText
<i class=\"icon-warning-sign icon-white\"></i> = SomeText
<i class=\"icon-remove icon-white\"></i> = SomeText
<i class=\"icon-refresh icon-white\"></i> = SomeText
<i class=\"icon-download-alt icon-white\"></i> = SomeText
<i class=\"icon-list-alt icon-white\"></i> = SomeText
<i class=\"icon-ok icon-white\"></i> = SomeText",
'data-placement' => 'top' %>
Now I'll use a helper method to achieve the same thing.
<%= link_to 'First', '#', class: 'tag-tooltip', :data => {:toggle=>"tooltip"}, 'data-original-title' => get_icon_tooltip(get_icon_hash).html_safe, 'data-placement' => 'top' %>
Now, despite the html being the same for the icons
<i class="icon-off icon-white"></i> = SomeText<i class="icon-info-sign icon-white"></i> = SomeText<i class="icon-ban-circle icon-white"></i> = SomeText<i class="icon-warning-sign icon-white"></i> = SomeText<i class="icon-remove icon-white"></i> = SomeText<i class="icon-refresh icon-white"></i> = SomeText<i class="icon-download-alt icon-white"></i> = SomeText<i class="icon-list-alt icon-white"></i> = SomeText<i class="icon-ok icon-white"></i> = SomeText
the end result is HTML with unescaped '<' and '>' characters.
<a class="tag-tooltip" data-original-title="<i class="icon-off icon-white"></i> = SomeText<i class="icon-info-sign icon-white"></i> = SomeText<i class="icon-ban-circle icon-white"></i> = SomeText<i class="icon-warning-sign icon-white"></i> = SomeText<i class="icon-remove icon-white"></i> = SomeText<i class="icon-refresh icon-white"></i> = SomeText<i class="icon-download-alt icon-white"></i> = SomeText<i class="icon-list-alt icon-white"></i> = SomeText<i class="icon-ok icon-white"></i> = SomeText" data-placement="right" data-toggle="tooltip" href="#">First</a>
Thoughts?
Upvotes: 0
Views: 152
Reputation: 20858
Why are you calling html_safe
on your helper ? This will cause the unescaped characters.
Can you replace :
get_icon_tooltip(get_icon_hash).html_safe
by
get_icon_tooltip(get_icon_hash)
Upvotes: 1