2017-05-23 4 views
0

ich ein User-Modell haben, und ich hoffe, verschiedene Seiten zu haben, um ihre Informationen zu bearbeiten, so dass ich nicht alles auf edit.html.erbRails 4 & Entwickeln 4: Halten Sie Benutzer auf der aktuellen Seite nach Profil Aktualisierung

haben also Bisher habe ich Ansichten für page_content.html.erb und donation_options.html.erb erstellt, die meine Formulare auf ihnen haben. Beide funktionieren wie beabsichtigt und aktualisieren meinen Benutzer erfolgreich, aber nachdem ich das Formular abgeschickt habe, wird der Benutzer root umgeleitet, nämlich show.html.erb. Ich möchte es so einrichten, dass der Benutzer nach dem Aktualisieren seines Profils auf der aktuellen Seite bleibt. Ich bin mir nicht sicher, ob ich meine UsersController bearbeiten oder einen neuen Controller erstellen oder einen anderen Ansatz wählen muss.

Hier ist ein Beispiel meiner Form:

<%= form_for @user do |f| %> 
       <!--Some inputs--> 

       <div class="actions"> 
       <%= f.submit 'Update', :class => "btn btn-primary" %> 
       <!--After submitting, I'm taken to /users/:id/. I'd like to stay on /users/:id/current_view--> 
       </div> 
      <% end %> 

Antwort

2

Wenn Sie bereits ein UsersController haben Sie etwas nach oben vergleichbar diesen Satz sollte:

Class UsersController < ApplicationController 
    def update 
    @user = User.find(params[:id]) 
    if @user.update(user_params) 
     redirect_to your_path_here 
    end 
    end 
end 

Ich bin nicht sicher genau das, was Ihr UsersController aussieht , aber das sollte dir eine Idee geben. Nachdem ein Benutzer aktualisiert wurde, verwenden Sie redirect_to mit Ihrem Pfad, an den der Benutzer gesendet werden soll. Sie können auch redirect_to :back verwenden, wenn Sie auf die aktuelle Seite umleiten möchten.

Bitte beachten Sie diese bestehende SO post.

+1

Fantastisch, das war 100% die Antwort. Vielen Dank! – user3183717

+0

Froh ich könnte helfen :) – jdgray

Verwandte Themen