[Rails]에서 데이터를 저장하고 업데이트한 후 이전 페이지로 돌아가고 싶습니다!

3456 단어 RubyRails

입문


예를 들어 EC 웹 사이트의 구매 페이지에서 사용자 정보를 업데이트한 후 첫 페이지로 이동하는 것이 어떻습니까?
사용자는 또한 구매 화면에 다시 액세스해야 하기 때문에 UX가 상당히 나빠질 수 있습니다.

그래서 우리는 원래 구매 페이지로 돌아가는 방법을 조사했다.

그냥 지목하면 되는 거 아니에요?


물론 페이지 사이가 일대일 관계라면 됩니다.

하지만 사용자 정보의 업데이트 등도 다른 페이지에서 진행되고 있다.
페이지 관계가 다중 대 1인 경우 링크 소스에 따라 페이지로 돌아가야 합니다.

이전 페이지로 돌아가는 방법


Rails가 표준 방법에 있으므로 이전 방법으로 돌아가는 방법은 간단합니다.
redirect_back(fallback_location: root_path)
근데 이번엔 나 이거 못 써.

사실'앞의 두 개'로 돌아가야 돼요.


데이터의 저장·업데이트 중元のページnewcreate으로 이동하기 때문에 원래의 페이지로 돌아가려면 반드시 두 개 전으로 돌아가야 한다.

따라서 반환할 페이지의 URL을 세션에 저장하여 만든 후 해당 페이지로 마이그레이션하도록 설정합니다.
controller
  def new
    session[:previous_url] = request.referer  # ここで前ページセッションを保存
  end

  def create
    redirect_to session[:previous_url]  # create後に遷移させる
  end
request.referer에서 원본 이전의 URL을 얻을 수 있기 때문에 세션에 저장하고create 방법을 이용하여 저장된 세션을 new 이전 페이지로 이전합니다.
이렇게 하면 너는 앞의 두 페이지로 돌아갈 수 있다.

참고 자료


Referer - HTTP | MDN
https://developer.mozilla.org/ja/docs/Web/HTTP/Headers/Referer
액션 컨트롤러 개요 Rails 가이드
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
Rails에서 소스 URL을 가져오는 방법
https://qiita.com/taka_571/items/9b1c82d8fcc602df8a1a![C4CEA757-38D3-4557-A690-5176C5FA5FED_1_105_c.jpeg](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/672627/169675de-3a9a-6c9b-fc99-8bdffd5be323.jpeg)

좋은 웹페이지 즐겨찾기