Rails - link_to helper с атрибутом data- *

Возможный дубликат:
Лучший способ использования атрибутов данных html5 с помощью рельсов content_tag helper?

Как использовать html5 data-* attrubute в моем link_to helper (Rails)

API говорит, что я должен использовать этот формат link_to(body, url, html_options = {}), но у меня есть ошибка, когда я помещаю его в html_options

Пример:

link_to "whatever", @whatever_path, { class: 'my_class', data-tooltip: 'what I want' }

Ответ 1

Просто передайте их в... Rails имеет по умолчанию :data хэш

= link_to body, url, :data => { :foo => 'bar', :this => 'that' }

Один из них - вы должны окружать символы кавычками, если они включают тире:

:data => { :'foo-bar' => 'that' }

Обновление: В Rails 4 подчеркивания автоматически преобразуются в тире, поэтому вы можете сделать это:

:data => { :foo_bar => 'that' }

В качестве альтернативы вы можете просто написать его напрямую:

= link_to body, url, :'data-foo' => 'bar', :'data-this' => 'that'

Обновление 2: Как указано в комментариях, Ruby 1.9+ разрешает этот синтаксис, который, по мнению некоторых, является более чистым:

{ data: { foo: "bar" } }

Ответ 2

Добавьте атрибут data-, выполнив следующие действия:

link_to "Hello", hello_path, :"data-attribute" => "yeah!"