2010-07-22 7 views
0

J'ai un objet: @object avec des tonnes de champs booléens.Ruby on Rails: Comment soumettre un formulaire de cases à cocher?

maintenant. selon la spécification HTML, si une case n'est pas cochée, la valeur n'est pas envoyée.

Ce qui est un problème ... parce que j'ai besoin de cette information.

Comment puis-je contourner cela? l'api pour f.check_box suggère fields_for ... http://api.rubyonrails.org/classes/ActionView/Helpers/FormHelper.html#M002298

mais je ne pouvais pas comprendre la syntaxe @ object.is_admin

= \

actuellement, sans changer quoi que ce soit: j'ai ceci:

<% form_for @object do |f| %> 
     <td><%= f.check_box :allow_downloads, :label => false %></td> 
. 
. 
. 

erreur: undefined method to_i » pour #`

Répondre

0

Le problème était que mon accédait au mauvais contrôleur. J'ai déplacé ma forme à une vue correcte (plus logique pour la convivialité, de toute façon) et cela fonctionne.

0

les champs générés automatiquement cachés pour le ch eckboxes comme décrit par cette documentation ne fonctionne pas pour vous?

+0

ajouté du code à mon message. la page ne rend que l'erreur. – NullVoxPopuli

1

Ce n'est rien que vous devriez être préoccupé.

Si vous regardez le code généré par l'aide check_box, vous verrez que les rails créent un champ caché qui représente la valeur non cochée. Lorsque vous cochez la case, il aura la priorité sur le champ caché, parce qu'il est déclaré après:

<input type="hidden" /> 
<input type="checkbox" /> 
0

Il n'y a pas « = » dans le <% f.check_box. En outre, si tous les champs sont booléens, vous pouvez les définir tous sur false et définir uniquement true ceux qui sont passés à travers la requête.

+0

Oui, j'ai remarqué que ... mais cela n'a rien à voir avec ma méthode non définie pour l'erreur – NullVoxPopuli

+0

bien, dans le peu de code que vous mettez là, il n'y a même pas de symbole "#", je ne peux pas dire ce qui ne va pas sans voir au moins la forme:] probablement c'est une faute de frappe ou quelque chose qui n'est pas fermé. – Draiken

Questions connexes