104 votes

Meilleure façon d'utiliser html5 attributs de données avec des rails content_tag l'aide?

Le problème, bien sûr, c'est que ruby symboles n'aime pas les traits d'union. Donc, quelque chose comme de toute évidence, cela ne fonctionne pas:

content_tag(:div, "Some Text", :id => "foo", :data-data_attr => some_variable)

Une option est d'utiliser une chaîne plutôt que d'un symbole:

content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)

Ou je pourrais juste interpoler:

"<div id='foo' data-data_attr='#{some_variable}'>Some Text</div>".html_safe

Je sorta préfère le plus tard, mais les deux semblent un peu brut. Quelqu'un connais un meilleur moyen?

143voto

stephencelis Points 1294

Rails 3.1 navires avec construit-dans les aides:

http://api.rubyonrails.org/classes/ActionView/Helpers/TagHelper.html#method-i-tag

E. g.,

tag("div", :data => {:name => 'Stephen', :city_state => %w(Chicago IL)})
# => <div data-name="Stephen" data-city-state="[&quot;Chicago&quot;,&quot;IL&quot;]" />

66voto

Eimantas Points 29052

Avez-vous essayé d'utiliser des guillemets avec le symbole? Quelque chose comme:

:"data-foo" => :bar

10voto

Cory Schires Points 696

Une aide n'est pas une mauvaise idée, mais semble un peu overkill pour ce qui est essentiellement moi, fusy sur la syntaxe. Je suppose qu'il n'y a rien construit dans des rails est ce que j'espérais. Je vais juste utiliser ce:

content_tag(:div, "Some Text", :id => "foo", 'data-data_attr' => some_variable)

6voto

coloradoblue Points 323

JQuery Air (codeschool.com) Niveau 1 de l'Exemple 1

Codeschool/indépendant de la plate-version

<section id="tabs">
  <ul>
    <li><a href="#2012-09-27" data-flights="6">Sep 27</a></li>
    <li><a href="#2012-09-28" data-flights="5">Sep 28</a></li>
    <li><a href="#2012-09-29" data-flights="5">Sep 29</a></li>
  </ul>
</section>

Rails De Version

<section id="tabs">
  <ul>
    <li><%= content_tag(:a, "Sep 27",:href=> "#2012-09-27", :data => { :flights => "6" } ) %></li>
    <li><%= content_tag(:a, "Sep 28",:href=> "#2012-09-28", :data => { :flights => "5" } ) %></li>
    <li><%= content_tag(:a, "Sep 29",:href=> "#2012-09-29", :data => { :flights => "5" } ) %></li>
  </ul>
</section>

-3voto

rodrigob Points 1084

Vous pouvez toujours créer votre propre fonction d'assistance alors vous pouvez écrire

<%= div_data_tag the_id, some_text, some_data %>

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X