Rails:如何在控制器中获取上一个操作的名称

liy*_*iya 7 ruby-on-rails

在rails中我需要检查控制器中前一个方法的名称.例如:有方法A,B,C ......等; 在一个控制器中,我只想在它来自方法A的情况下执行一些语句.如何为此编写条件?我看过许多关于当前操作名称和控制器名称的链接,但这不是我需要的.我需要获取前一个方法的名称.提前致谢.

Lou*_*eau 12

您可以使用request.referer获取HTTP引用标头,该标头将是以前访问过的URL.

但是,这不是解决您所面临问题的理想方式,因为它不可靠,并且如果您的网址发生变化会中断.如果需要通过应用程序保留有关用户路径的信息,可以尝试在会话中存储变量:

http://guides.rubyonrails.org/action_controller_overview.html#accessing-the-session


El *_*nas 10

你可以用它

url = Rails.application.routes.recognize_path(request.referrer)
last_controller = url[:controller]
last_action = url[:action]
Run Code Online (Sandbox Code Playgroud)

src:https://stackoverflow.com/a/24189831/5063171