1

使用 Rails 3.2.x 和 Ruby 1.9.3

给定格式错误的 erb 模板,我该如何执行以下操作之一:

  • 验证模板并在错误时引发错误
  • 当我尝试获取错误模板的结果时,捕获 ERB 抛出的 SyntaxError。

我认为这会起作用:

template = "Hello <%= @planet name %>"
@planet_name = "Earth"

begin
 ERB.new(template,nil).result(binding)
rescue
 Raise StandardError, "Bad Erb template"
end

但事实并非如此。相反,我从 ERB 得到一个 SyntaxError。

有没有办法捕获/验证这些错误?

4

1 回答 1

2

专门拯救 SyntaxError 证明可以解决问题。

begin
 ERB.new(template,nil).result(binding)
rescue SyntaxError
 raise StandardError, "Bad Erb template"
end
于 2013-02-13T14:46:05.140 回答