超薄模板:如何解救异常?

时间:2013-02-06 14:20:46

标签: ruby erb slim-lang

我想将以下erb代码转换为slim。

<% begin %>
  <%= some_function %>
<% rescue Exception %>
  <%= some_other_function %>
<% end%>

我的方法是:

- begin 
  = some_function
- rescue Exception 
  = some_other_function

但这会产生错误:

index.slim:34: syntax error, unexpected keyword_ensure, expecting $end

如何使用slim来正确拯救异常?

2 个答案:

答案 0 :(得分:5)

你需要做一个助手。

在那个助手中你应该放置开始/救援逻辑。

# my_helper.rb
class MyHelper
  def my_func
    begin
      some_function
    rescue
      some_other_func
    end
  end
end

# slim view
= my_func

答案 1 :(得分:1)

这实际上是一个bug in slim并固定在苗条的1.3.7向上(https://github.com/slim-template/slim/commit/e4df090c2c82c3563bcc4e625cbd6ab55a60caf8

语法现在完全按预期工作。没有辅助方法也不需要缩进。