Frage

Ich bin derzeit wieder mit einem teilweise auf zwei verschiedene Ansichten.

  

Ansicht A

     

View B

Der Teil gehört A Modell, sondern hat eine Verbindung mit dem Modell B, so dass es anwendbar ist B zu Modell als auch.

Es enthält ein Formular, und wenn Daten gesendet wird, leitet es automatisch immer den Benutzer jedoch zum Ansehen A., wenn ich die Form von View B einreichen, ich möchte zurück zu View B umgeleitet werden anstelle der Form A.

Der Grund ist es gerade jetzt umleitet A zu betrachten, ist, weil das Modell ist diese Form gehört. Also, wenn geschrieben, es spricht mit Controller A und verwendet eine Umleitung des Benutzers, um a_url.

Wie kann ich sagen, meine Form (oder mehr, so dass Controller-Aktion), um den Benutzer zu umleiten zurück, wo sie hergekommen sind?

Danke!

War es hilfreich?

Lösung

Gelöst.

Ich habe ein verstecktes Feld zu meiner Form, die den Controller Namen enthielt, in dem der Teil gemacht wurde und dann mein respond_to Block bestimmt, wo die Benutzer zu senden.

Sehen Sie den Code ein:

<%= hidden_field_tag 'submitted_from', "#{controller.controller_name}" %>

Mein Controller-Code:

if params[:submitted_from] == 'A'
  redirect_to a_url
else
  redirect_to b_url
end

Andere Tipps

Statt einen versteckten Tag zu verwenden, sollten Sie dies in der Sitzung setzen:

session[:submitted_from] = new_model_url

und in der anderen Aktion ..

redirect_to(session[:submitted_from])
session[:submitted_from] = nil

Es ist ziemlich einfach Formularvariablen wechseln aus, während es schwieriger sein kann (aber nicht unmöglich), um eine Sitzung zu schmieden. Ich würde diesen Weg gehen, wenn es meine Anwendung ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top