Je souhaite revenir (rediriger) vers l'URL source de la transition après un processus spécifique avec l'application Flima développée par Rails. Plus précisément ↓
À l'origine, après l'enregistrement de Creca, l'écran est passé à l'écran affichant les informations de la carte. C'était un comportement très hostile pour les utilisateurs qui devaient trouver le produit qu'ils essayaient d'acheter à nouveau et appuyer sur le bouton d'achat.
Appuyez sur le bouton d'achat sur la page du produit → Transition vers l'écran d'enregistrement Creca (lorsque Creca n'est pas enregistré)
Enregistrement Creca → Passage à l'écran pour afficher les informations de la carte enregistrée
Ce n'est pas facile à utiliser, et le produit que vous avez essayé d'acheter peut être dans une situation où "Wow, c'est difficile de le retrouver .. Je ne veux pas l'acheter." J'ai donc cherché une solution. Je l'ai bien résolu, alors je vais le décrire.
Ruby 2.5.1 Rails 5.2.4
request.referer
La description elle-même est incroyablement simple.
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) #Cette ligne! !! !!
end
Dans la ligne ci-dessus à la fin, j'écris redirect_to request.referer
, mais avec cela, j'obtiens l'URL (référent HTTP) avant de passer à l'écran d'enregistrement de la carte (cartes de crédit / nouveau) et la redirige. ..
Enregistrement de la carte → Revenez à la page que vous tentiez d'acheter → Achetez maintenant!
J'ai pu le résoudre comme ça.
(Au fait, ? (): ()
Est un opérateur ternaire. Pour plus de détails, voir Qiita de M. Ito ([[Pour les débutants] Idiomes et méthodes utiles qui peuvent être utilisées pour la refactorisation dans Ruby and Rails](https: // qiita.com/jnchito/items/dedb3b889ab226933ccf))
Cliquez ici pour la «demande» des rails. [[Rails Guide] 10 objets de requête et de réponse](https://railsguides.jp/action_controller_overview.html#request%E3%82%AA%E3%83%96%E3%82%B8%E3%82%A7 % E3% 82% FA% E3% 83% 88% E3% 81% Réponse A8% E3% 82% AA% E3% 83% 96% E3% 82% B8% E3% 82% A7% E3% 82% FA% E3 % 83% 88)
Je pense que vous devriez rechercher sur Google le référent (référent) et le référencement HTTP.
Recommended Posts