Salut il est parfaitement normal que tu ne récupères dans tes paramètres que
les id des checkbox cochées. En même temps c'est facile de faire un
traitement, les clés qui n'existent pas n'ont pas été cochées...
Je te conseille
pour tester de faire volontairement "planter" ton action avec un fail
pour visualiser le contenu des paramètres
(méthode rapide) ou bien regarder dans ton log.
Si tu crées tes checkbox dans ta vue avec un tag du style :
<%= check_box_tag "member_expected[#{member.id}]" %>
tu récupéreras dans params[:member_expected] un Hash où les clés (méthode
keys) sont les ids de tous les membres sélectionnés.
Cdt,
Nicolas Blanco (Novelys).
Le 27 juillet 2009 15:21, Fabien Jakimowicz <[email protected]> a écrit
:
>
> 2009/7/27 Matthieu Humbrecht <[email protected]>
> >
> > Michel Belleville wrote:
> > > Nommer tes checkbox avec la référence à l'id du membre comprise dans le
> > > nom,
> > > faire des pseudo-checkbox JavaScript (la checkbox devient un "switch"
> > > pour
> > > un élément <input type="hidden"> qui contient vraiment l'information),
> > > ou
> > > carrément une requête AJAX qui liste les checkbox et construit le
> > > paramètre.
> > > Perso je te recommande la première solution, elle est plus simple,
> > > marche
> > > même sans JavaScript, et se maintient beaucoup plus facilement.
> > >
> > > Le problème est simple, il vient du fait que les navigateurs ne sont
> > > censés
> > > envoyer que les checkbox cochées d'un formulaire (sisi).
> > >
> > > Michel Belleville
> > >
> > >
> > > 2009/7/27 Matthieu Humbrecht <[email protected]>
> >
> > Merci pour cette réponse éclair ;)
> > Mais je dois avouer que je suis dans le brouillard la.
> > Etant encore un bon débutant (rails et le développement web en général),
> > pourrais-tu éventuellement détailler ? :p
>
> Une solution coté serveur serait de construire un hash de réponses. Tu
> sais combien de réponses en checkbox tu attends, tu peux le faire
> facilement, en modifiant légèrement le code de ta vue :
>
> <td class="handle"><%= check_box_tag
> "broadcast_#{member.id}[]"%></td>
>
> Et côté controlleur, ca donnerait un truc comme :
>
> reponses = {}
> @current_project.project_permissions.each do |member|
> reponses["broadcast_#{member.id}"] = (params["broadcast_#{member.id}"] ==
> '1')
> end
>
> Je trouve cette approche plus simple quand on ne veut pas trop
> manipuler de javascript et jouer avec le dom. Je te laisse le soin de
> l'adapter aux autres cases ;)
>
> --
> http://fabien.jakimowicz.com
>
> >
>
--~--~---------~--~----~------------~-------~--~----~
Vous avez reçu ce message, car vous êtes abonné au groupe "Railsfrance" de
Google Groups.
Pour transmettre des messages à ce groupe, envoyez un e-mail à l'adresse
[email protected]
Pour résilier votre abonnement envoyez un e-mail à l'adresse
[email protected]
-~----------~----~----~----~------~----~------~--~---