给出像这样的帮手
def helper_method(name, &block)
result = block_given? ? capture(&block)
...
result
end
这个HAML视图
= raw helper_method do
.content
some html content
当与raw一起使用时,结果为零。为什么呢?
我知道如何解决这个问题,有很多方法可以避免这种情况,但我想知道的是为什么我会失去这块?
答案 0 :(得分:2)
由于您未使用()
,因此该区块未到达helper_method
。
基本上raw
方法是获得阻止的方法。
尝试:raw helper_method {}
这是do end
和{}
块之间的主要区别之一。
或使用()
来防止歧义。
答案 1 :(得分:0)
我不确定,因为我从不使用haml 但是你不需要结束标签吗?
像这样:<%= raw helper_method do %>
<% end %>