haml中的条件块

时间:2010-09-20 16:52:42

标签: ruby haml erb

在ruby中你可以像这样做条件块

block do |n|
  puts n
end if foo == bar

将转换为erb as

<% block do |n| %>
  <%= n %>
<% end if foo == bar %>

有没有办法在haml中实现这一点,而不是将块包装在条件中?

2 个答案:

答案 0 :(得分:7)

- block do |n|
  = n
- end if foo == bar

在这种情况下,哈姆尔允许end

答案 1 :(得分:0)

请将if放在前面 - 它使其更具可读性:

- if foo == bar
  - block do |n|
    = n

而且,如果经常发生这种情况,请考虑编写一个自定义的Haml助手。

(我在评论中提到了GitHub Ruby Style guide。如果您search Google for 'ruby do end chaining',您会看到许多推荐使用该结构的样式指南。)