Comment ajouter des attributs de données HTML5 à une étiquette d'étiquette de formulaire rails?
J'ai un rails de forme avec ce code:
<%= form_tag("../vehicles", method: "get") do %>
<div>
<div>
<%= label_tag(:address, t("ui.reservations.pickup"), data-addr: 'here') %>
</div>
<div>
<%= label_tag(:address, t("ui.reservations.between_now_and_param", param: @start_date.strftime( time_format))) %>
</div>
<div>
Je veux ajouter une page HTML l'attribut de données de la première étiquette, j'ai donc essayé:
<%= label_tag(:address, t("ui.reservations.pickup"), data-addr: 'here') %>
mais j'obtiens une erreur de syntaxe:
SyntaxError des Réservations#new
.../_form.html.erb:8: syntax error, unexpected tLABEL
');@output_buffer.append= ( label_tag(:address, t("ui.reservations.pickup"), data-addr: 'here') );@output_buffer.safe_concat('...
Je peux l'ajouter en tant que
<%= label_tag(:address, t("ui.reservations.pickup"), data: 'here') %>
Qui génère:
<label for="address" data="here">
mais je ne semble pas être en mesure d'ajouter data-something
attributs. J'obtiens une erreur de syntaxe.
Comment puis-je faire cela?
source d'informationauteur Michael Durrant
Vous devez vous connecter pour publier un commentaire.
La réponse fournie par @vee rendra ce correctement. La raison pour laquelle vous faites une erreur de syntaxe est parce que
data-addr: 'here'
n'est pas valide code ruby. Qui est, vous ne pouvez pas utiliser le JSON de hachage notation avec une clé contenant un caractère de trait d'union. Vous pouvez la modifier pour fonctionner correctement comme ceci:Mais l'approche recommandée consiste à déclarer un imbriquée de hachage pour les 'données' attributs:
Ou tout simplement (comme @vee suggéré):
[OP edit:]
J'ai aussi trouvé que souligne générer des tirets! Par exemple:
génère
Utilisation
data
de hachage comme suit: