我有个问题.

如何在控制器操作中获取控制器操作的名称?

例如

def create
  logger.info("create")
end

我想写点什么

def create
  logger.info(this_def_name)
end

获得this_def_name分的方法是什么?

推荐答案

Rails 2.X: @controller.action_name

Rails 3.1.X: controller.action_name, action_name

Rails 4.X: action_name

Ruby-on-rails相关问答推荐

使用ActiveSupport::TimeWithZone将UTC转换为用户定义的时区

用变量替换 find_or_create_by 中的键

Rails - 按连接表数据排序

带有 simple_form 的按钮内的 HTML 代码

在 JS 模块中使用 Rails-UJS(带有 webpacker 的 Rails 6)

有没有办法在模型而不是视图中使用复数()?

从 Authlogic 迁移到 Devise

用 url_for 查询参数?

如何在终端中查看 Heroku 应用程序的当前数据库架构?

Rails Mailer Net::OpenTimeout: execution expired 仅在生产服务器上出现异常

如何将 yaml 文件解析为 ruby​​ 哈希和/或数组?

可以在 Rails/ActiveRecord 中使用 NULL 指定唯一索引吗?

Rails Activeadmin - 自定义关联 Select 框

Rails 3 SSL 路由从 https 重定向到 http

过滤器在渲染之前但在控制器之后执行?

Rails Devise:设置密码重置令牌并重定向用户

从 ActiveRecord 对象中提取两个属性的快捷方式?

如何在 rake 任务中强制 RAILS_ENV?

ActionMailer 在开发 Rails 4 中不发送邮件

Rails:如何将日期时间字符串解析为特定时区