Nicolas Blanco wrote:
> 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
> :

Après encore 2 bonnes heures de prise de tête ce matin, je dois avouer 
que tu m'as sauvé la vie !!!!
Merci à tous pour vos réponses, cela m'a fortement aidé !

Je donne mon code (qui marche xD) au cas où cela pourrait aider de 
prochains visiteurs dans la même galère que moi :

Vue :

<% form_for :presence, :url => {:action => "create_presence"} do%>
  <table class="index">
    <table width="100%" cellspacing="0px">
      <thead>
        <th>Entreprise</th>
        <th>Qualité</th>
        <th>Diffusion</th>
        <th>Convoqué</th>
        <th>Absent</th>
      </thead>
      <% for member in @current_project.project_permissions do %>
          <tr class="<%= cycle('list-line-odd', 'list-line-even',:name 
=> "row_class")%>">
            <td class="handle"><%= member.company.name %></td>
            <td class="handle"><%= member.job.name %> </td>
            <td class="handle"><%=check_box "presence[#{member.id}]", 
"broadcast"%></td>
            <td class="handle"><%=check_box "presence[#{member.id}]", 
"expected"%></td>
            <td class="handle"><%=check_box "presence[#{member.id}]", 
"absent"%></td>
          </tr>
      <%end%>
    </table>
  </table>
  <br/>
  <%= hidden_field_tag('report', "#[email protected]}") %>
  <%= submit_tag "Envoyer" %>
<%end%>

Contrôleur :

  def create_presence
    @report = Report.find(params[:report])
    params[:presence]
    @current_project.project_permissions.each do |member|
      @presence = Presence.new(params[:presence]["#{member.id}"])
      @presence.report_id = @report.id
      @presence.job_id = member.job.id
      @presence.save
    end

Bonne continuation à vous
Amicalement,

-- 
Posted via http://www.ruby-forum.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]
-~----------~----~----~----~------~----~------~--~---

Répondre à