我想在Rails 3应用程序without中记录当前回溯(stacktrace),以防出现异常.知道怎么做吗?

我为什么要这个?我试图跟踪Rails查找模板时发出的调用,以便 Select 要覆盖的过程的一部分(因为我想更改我的特定子类控制器的视图路径).

我想从档案中打个电话:gems\actionpack-3.2.3\lib\action_dispatch\middleware\templates\rescues\missing_template.erb.我知道这不是最佳实践,但我知道这是搜索模板的堆栈的下游.

推荐答案

你可以使用Kernel#caller:

# /tmp/caller.rb

def foo 
  puts caller # Kernel#caller returns an array of strings
end

def bar 
  foo 
end

def baz 
  bar 
end

baz

输出:

caller.rb:8:in `bar'
caller.rb:12:in `baz'
caller.rb:15:in `<main>'

Ruby相关问答推荐

为什么非数字在Ruby中被转换为integer?

如何判断 postgres 中使用 ruby​​ 的查询是否失败?

ruby 组合哈希相关键

如何在加载文件时禁用重新定义常量的警告

在Ruby中将嵌套哈希键从CamelCase转换为snake_case

如何在 Ruby 中合并多个哈希?

Ruby 相当于 Groovy 的 Elvis (?:) 运算符?

如何在没有 Web 服务器的情况下从命令行执行 ruby​​ 模板文件 (ERB)?

Coffeescript 中等效的 Ruby .times

在 Ruby 中创建数字、字符串、数组或哈希的 md5 哈希

如何让 Ruby 解析时间,就好像它在不同的时区一样?

什么时候在 Ruby 中使用 Struct 比使用 Hash 更好?

Ruby字符串上的扫描和匹配有什么区别

如何获取从位置 N 到 Ruby 中最后一个字符的子字符串?

Jekyll - 找不到命令

在 Ruby 中取消定义变量

你怎么说不等于在 Ruby 中?

如何在 Rails 3 迁移中描述枚举列?

当我们导入 csv 数据时,如何消除UTF-8 中的无效字节序列

如何在遍历数组时使用 Array#delete?