2016-05-05 1 views
0

Je crée un formulaire d'évaluation dans lequel un utilisateur soumettra formulaire après formulaire en utilisant la pagination kaminari. La façon dont je l'ai configuré en ce moment est que l'utilisateur répondra aux questions, soumettra le formulaire avec un bouton f.submit, puis une fois le profil mis à jour, l'utilisateur devra sélectionner manuellement 'Next User' en utilisant le bouton paginate sous le bouton f.submit. J'aimerais à la fois soumettre le formulaire et envoyer l'utilisateur à la prochaine évaluation en ligne sous l'action d'un bouton, pas deux. J'ai joué avec essayant d'incorporer le code de paginate dans mon bouton f.submit, mais il continue à lancer des erreurs. Je me demandais s'il y avait un moyen facile d'y parvenir, merci d'avance!Utilisation de Paginate directement après la soumission

<h2>Team Member Evaluation</h2> 
<br> </br> 

<% @users.each do |user| %> 

    <h4> <%= user.name %> </h4> 

    <%= form_for(user) do |f| %> 
    <% begin %> 

    <h8> Hunger for Wisdom </h8> 
     <div class="form-inline"> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 1 %> 
      <h7> 1 </h7> 
     </div> 
     <div class="form-group"> 
      <%= f.radio_button :current_one, 2 %> 
      <h7> 2 </h7> 
     </div> 
    <% end %> 

    <div class="col-md-3 col-md-offset-4"> 
    <%= f.submit "Submit Score", class: "btn btn-default" %> 

    <% rescue ActionController::RedirectBackError %> 

    </div> 
    </div> 

<% end %> 
<%= paginate @users %> 
<% end %> 
<% end %> 

En ce moment, il est mis en place à chaque fois que l'utilisateur soumet le formulaire, l'action de sauvetage va diriger l'utilisateur vers une page actualisée du formulaire de evaulation ils ont juste soumis, puis ils doivent cliquer à côté où le < % paginate @users%> doit aller au formulaire suivant. Je voudrais une fois que le bouton f.submit est pressé pour mettre à jour et ensuite amener immédiatement l'utilisateur au formulaire suivant.

Répondre

0

Dans l'action du contrôleur pour vous soumettez le pouvez simplement augmenter le nombre de pages comme ceci:

@users = User.page params[:page].to_i + 1 

Ceci est en supposant que vous n'utilisez pas d'autres champs d'application pour obtenir la collection @users. Le repo kaminari github a plus d'informations sur les méthodes disponibles here.

S'il est sur la première page alors la requête de la page var est probablement nulle, vous devrez donc en tenir compte et l'envoyer à la page 2 dans ce cas particulier.