Answers:
Rails 2.X:@controller.action_name
Rails的3.1.X:controller.action_name
,action_name
Rails 4.X:action_name
before_filter
带有块的中使用它,请执行before_filter { |controller| ... }
。 stackoverflow.com/questions/2669663/…–
action_name
可以在Rails 3.2.13中使用,而controller.action_name
不能。
在Rails操作的特定情况下(与获取当前方法名称的一般情况相反),您可以使用 params[:action]
另外,您可能想研究自定义Rails日志格式,以便操作/方法名称包含在该格式中,而不是包含在您的日志消息中。
action_name == 'new'
(无前缀)在Rails 3.2中仍然对我
此代码段适用于Rails 3
class ReportsController < ApplicationController
def summary
logger.debug self.class.to_s + "." + self.action_name
end
end
将打印
。。。
ReportsController.summary
。。。
mikej的答案非常精确和有用,但是我还想知道的事情是如何在rails中获得当前的方法名称。
发现有可能与self.current_method
我也一样。我在辅助控制器中做到了,我的代码是:
def get_controller_name
controller_name
end
def get_action_name
action_name
end
这些方法将返回当前的控制器和操作名称。希望能帮助到你
controller_name
(这是一个返回当前控制器名称的方法)用另一个仅调用的 方法controller_name
?为什么不只打电话给controller_name
它做事呢?