Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/ruby/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby haml中的条件块_Ruby_Haml_Erb - Fatal编程技术网

Ruby haml中的条件块

Ruby haml中的条件块,ruby,haml,erb,Ruby,Haml,Erb,在ruby中,您可以这样做条件块 block do |n| puts n end if foo == bar 这将转化为雇员再培训局 <% block do |n| %> <%= n %> <% end if foo == bar %> 在haml中,除了在条件中包装块之外,还有其他方法可以实现这一点吗 - block do |n| = n - end if foo == bar 在这种情况下,Haml允许结束。请将如果放在前面,这样更容

在ruby中,您可以这样做条件块

block do |n|
  puts n
end if foo == bar
这将转化为雇员再培训局

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

在haml中,除了在条件中包装块之外,还有其他方法可以实现这一点吗

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

在这种情况下,Haml允许
结束

请将
如果
放在前面,这样更容易阅读:

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

,如果出现这种情况,请考虑编写自定义的HAML帮助器。


(我在一篇评论中提到了上述内容。如果你会看到许多风格指南建议使用该结构。)

你可以在Ruby中这样做,但在我和许多其他人看来,你会使用糟糕的风格:看看哪一个说的是避免做末端链接。即使我说的是“好的,
do
<代码>结束。如果样式是可读的”(它不是),我会畏缩地看到它在Haml中完成。我会在下面的答案中给出一些替代方案。你同时回答了这个问题,让我的眼睛流血。为了对Haml的爱,请不要鼓励这样做!)