2014-01-17 2 views
2

Я работаю над приложением Rails с Foundation 4.3.2, которое использует логические теги данных для целевых элементов.Атрибут данных без значения в Rails link helper

Если я хочу создать что-то вроде:

<a href="#" data-section-title>Section 2</a> 

Что мой Rails вспомогательная функция выглядит?

<%= link_to "Section 2", "#", :"data-section-title" %> 

... не работает, получите синтаксическую ошибку от Rails.

+0

Если вы используете Еврорадио, вы должны поместить link_to Внутри '<% =', например, '<% = link_to ...%>'. Третий аргумент link_to должен быть хэшем опций, поэтому вам нужно сказать ':" data-section-title "=> something'. – sampierson

ответ

0
= link_to "Section 2", "#", :"data-section-title" => true 
+1

Привет Крис! Ваше решение производит: 'Section 2'. В соответствии с [этим ответом] (http://stackoverflow.com/questions/20308537/rails-add-html-attribute-without-setting-a-value) невозможно использовать атрибуты без значений с помощью помощников рельсов. Logan вы можете просто закодировать HTML вручную, если это то, что вы действительно хотите, иначе просто используйте «» или true. – sampierson

+0

@sampierson Спасибо за ссылку, вот что я искал –

1
<%= link_to "Section 2", "#", data: {section_title: true } %> 

будет генерировать следующий код:

<a href="#" data-section-title="true">Section 2</a> 

Это должно работать.

+0

Является ли строка «true» той же вещью, что и boolean? –

+0

Да, давайте попробуем :) Нет никакого способа с помощью помощника rails для получения данных без значения, но вы получите тот же результат за то, что ищете. – goma

+0

Вы можете, но это не совсем понятно (или, по крайней мере, я не нахожу его в документах). Вам нужно назначить пустую строку атрибуту HTML. –

0

Для этого вам необходимо назначить данные атрибут пустой строки, как

<%= link_to "Section 2", "#", data: {"section-title": "" } %> 
+1

Это приводит к 'data-section-title =" "' (Rails 4.2) – kolen

+1

@kolen Это может быть функция, добавленная в Rails 4.3. Вы можете проверить, что в новых версиях Rails назначение пустой строки создает атрибут нецензурных данных –

+0

BTW, атрибуты с пустым строковым значением и без значения [эквивалентны в html] (http://w3c.github.io/html/ infrastructure.html # sec-boolean-attributes) (не уверен, полностью ли эквивалентен в результате DOM) – kolen

Смежные вопросы