加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

ruby-on-rails – 多个多行HAML块

发布时间:2020-12-16 20:42:03 所属栏目:百科 来源:网络整理
导读:使用(有意)奇怪的多行格式的HAML,我想在我的模板中有以下几行: = call_to_helper :foo1 = 'bar1',:foo2 = 'bar2',:foo3 = 'bar3',| :foo4 = 'bar4',:foo5 = 'bar5' |-# and= call_to_helper :foo1 = 'bar1',:foo5 = 'bar5' | 但是,它们不能相互竞争,或者被
使用(有意)奇怪的多行格式的HAML,我想在我的模板中有以下几行:
= call_to_helper :foo1 => 'bar1',:foo2 => 'bar2',:foo3 => 'bar3',|
  :foo4 => 'bar4',:foo5 => 'bar5' |

-# and

= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |

但是,它们不能相互竞争,或者被看作是一个单独的多行块.

-# This fails:
= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |
= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |

有条不紊地分手,有趣的是,没有什么更好的:

-# This fails,too:
= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |

= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |

我发现唯一的工作解决方案是在其间运行一行空白的Ruby代码.看起来真的很丑陋.

= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |
-
= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |

有更好的吗?

解决方法

这是一个功能,而不是一个bug.哈姆勒多线程块是有意笨重的 – 包括难以追随的一个接一个 – 因为几乎所有的时间最好把这个Ruby代码放在一个帮手中.即使帮助者只调用一次,它将使您的模板更容易阅读.例如:
def blatz_link
  call_to_helper :foo1 => 'bar1',:foo4 => 'bar4',:foo5 => 'bar5'
end

def blootz_link
  call_to_helper :foo1 => 'bar1',:foo5 => 'bar5'
end

然后在你的哈姆尔,只是做

= blatz_link
= blootz_link

这将更加可读和更容易理解.

如果你绝对必须跟随一个多行块与另一个,只需添加一个注释之间:

= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |
-#
= call_to_helper :foo1 => 'bar1',:foo5 => 'bar5' |

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读