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 に答える