Hello.
Regarde le code source HTML généré et tu comprendras. Les helpers
text_field, select, etc sont rattachés à un objet de formulaire et Rails
mappe les attributs dans un sous hash de params. Les helpers de base xyz_tag
ne sont pas mappés à un objet et sont donc directement dans le hash params.

Par contre ce que je comprends pas du tout c'est que tu utilises des check
boxes pour une relation de type belongs_to ! ça va pas ça. Si c'est une
relation de type belongs_to, tu vas plutot utiliser un select, voir des
radio buttons.

Pour faire une relation has_many avec des check_boxes, l'astuce se trouve
dans
http://www.slideshare.net/ihower/rails-best-practices (slide 33)

@+. Nicolas.

Le 14 décembre 2009 00:06, rmb <[email protected]> a écrit :

> Bonjour,
>
> J'ai essayé d'adapter un moceau d'un Railscast à mes besoins, mais
> sans succès.
>
> J'ai mon views/pcd/edit.html.erb qui ressemble à ceci:
>
> <% form_for(@pdc) do |f| %>
>  <%= f.error_messages %>
>
>  <p>
>    <%= f.label :nom %><br />
>    <%= f.text_field :nom %>
>  </p>
>
>  <p>
>    <% for equipement in Equipement.find(:all) %>
>      <div>
>        <%= check_box_tag "equipement_id",equipement.id,
> @pdc.equipement==(equipement) %>
>        <%= equipement.nom %>
>      </div>
>    <% end %>
>  </p>
>
>  <p>
>    <%= f.submit 'Update' %>
>  </p>
> <% end %>
>
> Or je m'aperçois que la quelque soit l'état de la checkbox, ma valeur
> equipement_id n'est pas mise à jour.
>
> En regardant dans les logs, je vois effectivement que ma valeur
> equipement_id ne "passe" pas comme un attribut... et je ne comprend
> pas pourquoi.
>
> Processing PdcsController#update (for 127.0.0.1 at 2009-12-13
> 23:58:04) [PUT]
>  Parameters: {"authenticity_token"=>"blaba=", "pdc"=>{, "nom"=>"23"},
> "equipement_id"=>"1", "commit"=>"Update", "id"=>"2"}
>
> Merci d'avance.
>
> --
> 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]

-- 
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]

Répondre à