[RUBY] [Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um

Was du machen willst

Ich möchte nach einem bestimmten Prozess mit der von Rails entwickelten Flima-App zur URL der Übergangsquelle zurückkehren (umleiten). Speziell ↓

  1. Klicken Sie auf der Produktseite auf die Schaltfläche Kaufen
  2. Wenn die Kreditkarte nicht registriert ist, ** Übergang zum Creca-Registrierungsbildschirm **
  3. Nach der Registrierung bei Creca ** Kehren Sie zu der Produktseite zurück, die Sie kaufen wollten (Weiterleiten) **

Ursprünglich wechselte der Bildschirm nach der Registrierung von Creca zu dem Bildschirm, auf dem Karteninformationen angezeigt wurden. Dies war ein sehr unfreundliches Verhalten für Benutzer, die das Produkt, das sie erneut kaufen wollten, finden und den Kaufknopf drücken mussten.

Ursprüngliche Situation

Klicken Sie auf der Produktseite auf die Schaltfläche Kaufen → Übergang zum Creca-Registrierungsbildschirm (wenn Creca nicht registriert ist) 92e9b1521895f97a6e1f2c4a46c7ce3f.gif

Creca-Registrierung → Übergang zum Bildschirm, um die registrierten Karteninformationen anzuzeigen e94f61e09decdfded6051eabaa91cd4b.gif

Dies ist nicht einfach zu bedienen, und das Produkt, das Sie gekauft haben, befindet sich möglicherweise in einer Situation, in der "Wow, es ist mühsam, es wieder zu finden. Ich möchte es nicht kaufen." Also suchte ich nach einer Lösung. Ich habe es gut gelöst, also werde ich es beschreiben.

Umgebung

Ruby 2.5.1 Rails 5.2.4

Verwenden Sie request.referer

Die Beschreibung selbst ist wahnsinnig einfach.

creditcards_controller.rb


  def create
    render :new if params[:payjpToken].blank?
    customer = Payjp::Customer.create(card: params[:payjpToken])
    @card    = Card.new(user_id: current_user.id, payjp_id: customer.id)
    @card.save ? (redirect_to request.referer) : (render :new) #Diese Linie! !! !!
  end

In der Zeile über dem Ende habe ich "redirect_to request.referer" geschrieben, aber damit erhalte ich die URL (HTTP-Referrer), bevor ich zum Kartenregistrierungsbildschirm (Kreditkarten / neu) übergehe und sie umleitung. ..

Überarbeitet

Kartenregistrierung → Kehren Sie zu der Seite zurück, die Sie kaufen wollten → Jetzt kaufen! 480ebbde6bc9bd533df8fadda2e06681.gif

Ich konnte es so lösen.

(Übrigens, ? (): () Ist ein ternärer Operator. Weitere Informationen finden Sie in Mr. Itos Qiita ([[Für Anfänger] Redewendungen und nützliche Methoden, die für das Refactoring in Ruby und Rails verwendet werden können) (https: // qiita.com/jnchito/items/dedb3b889ab226933ccf))

Klicken Sie hier für Rails Anfrage. [[Rails Guide] 10 Anforderungs- und Antwortobjekte](https://railsguides.jp/action_controller_overview.html#request%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7 % E3% 82% AF% E3% 83% 88% E3% 81% A8Response% E3% 82% AA% E3% 83% 96% E3% 82% B8% E3% 82% A7% E3% 82% AF% E3 % 83% 88)

Ich denke, Sie sollten über Referer (Referrer) und HTTP-Referral googeln.

Recommended Posts

[Rails] So erhalten Sie die URL der Übergangsquelle und leiten sie um
[Java] So erhalten Sie die URL der Übergangsquelle
Quelle zum Abrufen der Umleitungsquell-URL in Java
[Rails] So erhalten Sie den Inhalt starker Parameter
[Rails] Ruft den Pfadnamen der URL vor dem Übergang ab und ändert das Linkziel
[Swift5] So erhalten Sie ein Array und eine Reihe von Unterschieden zwischen Arrays
Wie komme ich zum heutigen Tag?
[Java] So erhalten Sie die endgültige umgeleitete URL
[Rails] So geben Sie Erfolgs- und Fehlermeldungen aus
So machen Sie https zum Schema der URL, die vom URL-Helfer von Rails generiert wurde
Rufen Sie die URL des HTTP-Umleitungsziels in Java ab
[Java] So erhalten Sie den Maximalwert von HashMap
[Rails] So ändern Sie den Spaltennamen der Tabelle
[Android] So erhalten Sie die Einstellungssprache des Terminals
Rufen Sie die URL des HTTP-Umleitungsziels in Ruby ab
[Swift] So erhalten Sie die Firebase-Dokument-ID
Einbetten und Anzeigen von YouTube-Videos in Rails (Sie können die eingegebene URL auch durch Bearbeiten abrufen).
[Grobe Erklärung] So trennen Sie den Betrieb der Produktionsumgebung und der Entwicklungsumgebung mit Rails
So erhalten Sie die längsten Informationen von Twitter ab dem 12.12.2016
[Rails] So zeigen Sie eine Liste der Beiträge nach Kategorie an
So führen Sie React und Rails auf demselben Server aus
So überprüfen Sie die Erweiterung und Größe der hochgeladenen Dateien
[jsoup] So erhalten Sie die gesamte Dokumentation
[Schienen] So verhindern Sie den Bildschirmübergang
[Swift5] Wie man komplexes JSON analysiert und den Index des Elements erhält, das die Bedingung erfüllt
So markieren Sie Suchbegriffe unabhängig von Groß- und Kleinschreibung und ohne das Suchquellwort zu ändern
So legen Sie die IP-Adresse und den Hostnamen von CentOS8 fest
[Webpacker] Zusammenfassung der Installation von Bootstrap und jQuery in Rails 6.0
[Rails] Wie man Kaminari mit Slim einführt und das Design ändert
[Rails / Heroku / MySQL] So setzen Sie die Datenbank der Rails-App auf Heroku zurück
So erhalten Sie den Inhalt von Map mithilfe des for-Anweisungsmemorandums
[Rails] So lassen Sie die Anzeige der Zeichenfolge der link_to-Methode weg
[Schienen] So ändern Sie den Seitentitel des Browsers für jede Seite
So löschen Sie große Datenmengen in Rails und Bedenken
Methode, um die Anzahl der Jahre zu addieren und das Monatsende zu erhalten
So erhalten Sie die ID des automatisch inkrementierten PRIMAY-Schlüssels in MyBatis
[Rails] Lesen Sie das RSS der Site und geben Sie den Inhalt an die Vorderseite zurück
[Java] So konvertieren Sie vom Typ String in den Pfadtyp und erhalten den Pfad
So ermitteln Sie die Länge einer Audiodatei mit Java
[Docker] So sichern und wiederherstellen Sie DB-Daten der Rails-Anwendung auf Docker-Compose [MySQL]
[Schienen] Verwendung der Kartenmethode
So bestimmen Sie die Anzahl der Parallelen
[Java] So erhalten Sie das aktuelle Verzeichnis
So sortieren Sie eine Liste von SelectItems
Wie man die Zehner und Einsen findet
So erhalten Sie das Datum mit Java
Speicherort der Methodendefinition Zusammenfassung der zu überprüfenden Informationen Wenn im Projekt und in Rails / Gem definiert
[Rails] So speichern Sie die Anforderungs-URL eines Benutzers, der nicht angemeldet ist, vorübergehend und kehren nach der Anmeldung zu dieser URL zurück
So wechseln Sie die Anzeige des Header-Menüs für jede Übergangsseite
So ändern Sie die maximale und maximale Anzahl von POST-Daten in Spark
[Rails] So erhalten Sie die aktuell mit devise angemeldeten Benutzerinformationen
[Java] Wie man mit der String-Klasse an die Spitze eines bestimmten Strings kommt
So beschränken Sie die Aktion des Übergangsziels, wenn Sie nicht angemeldet sind