Jerome
Jerome

Reputation: 6189

rails3 content_tag with static attributes

The following is being properly generated into HTML code

<%= content_tag(:span, (t 'hints.h'), :class => "has-tip", :title => (t 'hints.s') ) %>

But I am trying to generate

<span data-tooltip aria-haspopup="true" class="has-tip" title="title bla bla">translated h</span>

and have found no way to generate these span attributes data-tooltip aria-haspopup="true" They cannot be part of the options hash given one has only a name... and the second one has a dash which impedes from defining it as a symbol :aria-haspopup

Upvotes: 0

Views: 987

Answers (1)

Raffael
Raffael

Reputation: 2669

I suggest that you use the following:

content_tag(:span, t('hints.h'), :class => 'has-tip', :title => t('hints.s'), :'aria-haspopup' => true, :'data-tooltip' => '')

Note that you can use the dash character in symbols if you enclose them in quotes.

The data attribute you could also specify as nested hash like :data => {:tooltip => ''} instead of :'data-tooltip' => '', use whatever you prefer.

As for the boolean attribute data-tooltip, setting the value to an empty string is as good as omitting it (and your best option with Rails 3 ;)). See also:

http://www.w3.org/html/wg/drafts/html/master/infrastructure.html#boolean-attributes

Upvotes: 3

Related Questions