J'ai la ligne de haml suivante:
=form_tag :action => 'create', :controller => 'comments', :class => 'comment_form' do
Mais le code HTML qui obtient la sortie est:
<form accept-charset="UTF-8" action="/comments?class=comment_form" method="post"></form>
Je veux définir la classe. Comment puis-je faire cela?
<- Mise à jour ->
Avec ça:
=form_tag ({ :action => 'create', :controller => 'comments' }, { :class => 'comment_form' }) do
Je reçois cette erreur:
syntax error, unexpected ',', expecting ')'
...', :controller => 'comments' }, { :class => 'comment_form' }...
<- Deuxième mise à jour ->
Le problème ci-dessus est l'espace entre 'form_tag' et '(' La réponse de @ woahdae est correcte
form_tag prend 2 options de hachage, le premier étant passé à rl_for , le second étant passé au générateur de formulaire.
Donc, vous devez le faire comme:
= form_tag({:action => 'create',...}, {:class => 'comment_form'}) do
sinon Rails pense que toutes les paires clé/valeur sont pour url_for, qui ajoutera toutes les clés qu'il ne comprend pas comme paramètres de requête.
Sur Rails 5, vous pouvez effectuer les opérations suivantes:
<%= form_tag(your_named_path, {class: 'form-inline'}) do %>
<% end %>
Cela fonctionne pour moi:
form_tag named_route, :method => :put, :class => 'disable_on_submit'
Avec Rails 3.0.15
Vous pouvez faire comme suit:
form_tag your_path, method: :get, id: "your_id", class: "your_class" do
end