はじめに
Railsで遷移元(直前)のcontrollerやaction名を取得するやり方について説明する。また、途中でエラーのため詰まった部分があったので、その時の対処法も記しておく。
やり方
controller
path = Rails.application.routes.recognize_path(request.referer)
これだけです。
個別にcontrollerやactionを呼び出したいときは以下。
controller
#controllerを取得
path[:controller]
#actionを取得
path[:action]
エラー対応
No route matches
というエラーが発生。
controller
before_uri = URI.parse(request.referer)
path = Rails.application.routes.recognize_path(before_uri.path)
これで解決した。