2017-09-26 3 views
0

je moi où je montre tous les enregistrements et je dois ajouter une case à cocher pour la sélection multiple, je fais de la manière suivante:Sélectionnez tableau de passe case à cocher en rubis sur des rails à l'aide de la pagination Kaminari

<%= form_tag("/user_selection", method: 'get', remote: true, class: "form-horizontal") do %><!--responde al index--> 

    <div class="rwd"> 
    <table class="table table-striped table-bordered table-condensed table-hover"> 
     <thead> 
     <tr> 
      <th>name</th> 
      <th>last name</th> 
     </tr> 
     </thead> 
     <tbody id="container_users"> 
      <%= render @users %> 

     </tbody> 
    </table> 
    <%= paginate @users, :param_name => 'users' %> 

    </div> 
    <%= submit_tag "send", data: { disable_with: 'sending...' } %> 
<% end %> 

utilisateur partielle

<tr id="user_<%= user.Id %>"> 
    <td><%=user.try(:name)%></td> 
    <td><%=user.try(:lastname)%></td> 
    <td><%= check_box_tag "items[]", user.Id %></td> 
</tr> 

de cette façon, je peux sélectionner plusieurs dossiers et envoyer les ids au contrôleur, le problème vient lorsque je sélectionne les dossiers et je vais à la page suivante en utilisant la page de Kaminari, lors du passage de page les enregistrements de la page précédente ne sont plus sélectionnés, comme pourrait y ou le résoudre?

Répondre

0

1). Enregistrer tous les utilisateurs sélectionnés dans le champ masqué du formulaire selected_user_ids. Kaminari doit envoyer une requête à distance et mettre à jour uniquement la table de l'utilisateur mais pas la page entière. Dans ce cas, selected_user_ids conservera tous les utilisateurs sélectionnés.

Deuxième moyen: Enregistrer tous les utilisateurs sélectionnés dans localStorage. Sur le formulaire, soumettez tous les identifiants d'utilisateurs de localStorage et sauvegardez-les quand ils sont cachés et envoyez le formulaire.