由ruby / rails异常堆栈混淆

时间:2011-10-06 20:26:57

标签: ruby-on-rails ruby encoding

我正在与这个例外作斗争:

ActionView::TemplateError (incompatible character encodings: UTF-8 and ASCII-8BIT) on line #5 of app/views/retain/qs/_qs_row.html.erb:

这是来自模板,并且摘要以:

开头
app/helpers/retain/qs_helper.rb:111:in `render_row'
app/views/retain/qs/_qs_row.html.erb:5
...

这行代码是:

cache(tag) do
  ...
end

那时候我很困惑。根据堆栈,我们不在缓存中,也不在缓存产生的块内 - 让我们以某种方式,某处,在两个字符串上操作(可能连接它们。我如何找出操作发生的位置和正在使用的参数等?

令人沮丧的是,我自己也无法重现这一点。我必须把它放到我的临时环境中,让我在韩国的一个用户(实际上有两个)碰到它。

有人有任何调试建议吗?如果我进行救援,捕获异常并自行打印堆栈,它会有帮助吗?它会包含更多行吗?

2 个答案:

答案 0 :(得分:0)

在此行添加qs_helper.rb帮助文件

# encoding: utf-8

相关主题

  

Add "# coding: utf-8" to all files

答案 1 :(得分:0)

我添加了自己的救援,然后记录了异常的回溯。它包含的几个堆栈级别低于正常打印的堆栈级别。在我的案例中,异常来自内存缓存。

我不确定为什么Rails异常处理程序没有显示堆栈的前6个级别。