Kann ich mit redirect_to in eine Ansicht, in RoR?
In meine app, ich habe eine kleine box, die auf jeder Seite angezeigt, die überprüfung auf den status von Anfragen, die durch den Benutzer vorgenommen. Wenn eine Anfrage akzeptiert wird, zu jeder Zeit, dann sollte der Benutzer automatisch auf eine bestimmte Seite. Das ist mein code bisher:
<% offersMade.each do |w| %>
<% if w.accepted == true %>
<% redirect_to offer_path(:email => "[email protected]") %>
<% end %>
<% end %>
Aber ich bin immer diese Fehlermeldung:
undefined method `redirect_to' for #<ActionView::Base:0x1042a9770>
Ist es nicht möglich, Benutzer redirect_to im Blick? Wenn nicht, ist es etwas, das ich benutzen kann? Vielen Dank für das Lesen.
InformationsquelleAutor der Frage ben | 2010-07-03
Du musst angemeldet sein, um einen Kommentar abzugeben.
redirect_to ist eine Methode der ActionController::Base-Klasse, so dass Sie nicht verwenden können, es in ActionView.
Können Sie versuchen, folgende
Bearbeitet für die E-Mail-parameter
Sorry, ich weiß nicht, ob es etwas gibt, in ruby.
InformationsquelleAutor der Antwort Salil
Wenn Sie verwenden möchten redirect_to aus dem Blick , machen diese Methode:
syntax : <%controller.redirect_to Pfad %>
Beispiel:<% controller.redirect_to users_profile_path %>
InformationsquelleAutor der Antwort errakeshpd
Den code in der Ansicht verschoben werden konnten, in die Steuerung, die redirect_to zur Verfügung.
Wenn die OP wollte sofort ändern Sie die URL, wenn ein Angebot akzeptiert wird, dann wird keiner der Ruby-code in die Antworten, die helfen würde, denn es wird nur ausgewertet, wenn die Seite geladen wird. Die OP brauchen würde, um das setup irgendeine Art von polling oder push-Strategie weist den browser an, wenn ein Angebot akzeptiert wurde, und verwenden Sie dann die JavaScript-redirect Schema geschrieben in einer anderen Antwort:
Obwohl dies keine Antwort auf die Frage: "Wie kann ich mit redirect_to im Blick", ich denke diese Antwort würde letztlich sinnvoller gewesen für die OP. Ich stolperte über jemanden mit dieser Antwort zum umleiten auf eine andere Seite, wenn die Umleitung hätte ausgeführt werden sollen, in der controller.
InformationsquelleAutor der Antwort Mitch
redirect_to
ist nicht eine Methode derActionView
. Seine Methode derActionController
. Sie können wahrscheinlich verwenden Javascript-Fenster.Lage.href auf die Seite laden oder ein anderes Ereignis zu nehmen, Ihre Benutzer zu einer anderen Seite.InformationsquelleAutor der Antwort Suman Mukherjee
Ja, Sie können anrufen
controller.redirect_to
aus Ihrer Sicht zu bekommen, was Sie wollen, ohne Rendern zu müssen, die gesamte Antwort und verwenden Sie dann javascript auf dem client eine neue Anfrage.In deinem Beispiel würde dies so Aussehen:
Beachten Sie, dass diese
controller.redirect_to
wird nicht brechen aus der Schleife, so dass Sie wahrscheinlich wollen, umbreak
und wahrscheinlich werden Sie wollen, stellen Sie sicher, dass Sie den rest von Ihr Blick ist nur bedingt erbracht, wenn Sie nicht umleiten.(Disclaimer: ich bin nicht unbedingt dulden diese Technik. Sie wäre besser dran, dies zu tun in Ihrem controller oder Helfer, wie andere erwähnt haben.)
InformationsquelleAutor der Antwort scottwb