捕获助手没有html缓冲区

时间:2018-05-31 07:00:38

标签: ruby-on-rails ruby slim-lang

我有一个视图帮助程序,它在 onOk() { console.log("inside " + this.row.id); this.deletedRow.emit(this.row); // now close the modal $('#myModal').modal('hide'); } 语句中包含一个块调用,以确保某些catch被正确处理:

throw

我可以在我这样的苗条视图中使用帮助器

def if_reachable(&block)
  catch(:unreachable) do
    capture(&block)
  end
end

重要的是,在我看来,我没有看到文字- if_reachable do | I won't be printed cause something is not reachable - throw(:unreachable) 。这就是使用Rails'的原因。 I won't be printed...帮助者。

问题是,我也想在内联ruby中使用相同的帮助器:

capture

如果没有抛出/ this is also inside a slim template - data = if_reachable { my_service.load_data } ,我希望返回值为:unreachable

  

问题是:当没有涉及模板时,my_service.load_data助手总是返回capture并抛弃nil的返回值

我已经考虑过的一些方法是

编写单独的帮助函数:知道何时使用哪个帮助程序会让人感到困惑。

将内联模板ruby代码包装到他们自己的帮助器方法中并使用my_service.load_data如果开发人员尝试使用帮助程序并且无法使用帮助程序,则会造成混淆单独的辅助方法

return

知道如何解决这个问题吗?是否可以检查块是来自模板还是纯红宝石?

0 个答案:

没有答案