在HAML文档中的Ruby插值中拯救异常

时间:2012-07-09 20:50:45

标签: ruby-on-rails ruby haml

我在HAML文档中有一些插值的ruby代码,如下所示:

:javascript
    a = { 'something' : "#{model.attribute.present? ? method(parameter) : ''}" }

但是,方法(参数)会抛出一些带有参数的异常,所以我想挽救异常。抛出异常时,我希望将'something'键映射到其他东西。

我不清楚如何使用HAML代码/ ruby​​插值执行此操作的确切语法。我尝试了几件事,但它没有用。

谢谢!

1 个答案:

答案 0 :(得分:6)

你应该采取这一行

model.attribute.present? ? method(parameter) : ''

并从中制作一个帮助方法

class ApplicationHelper
  def some_method
    model.attribute.present? ? method(parameter) : ''
  rescue
    "something else" # this is your value in case of exception
  end
end

然后你的HAML变得微不足道

:javascript
    a = { 'something' : "#{some_method}" }