0

这个问题与这个问题相似,但有一个额外的皱纹:

从 Haml 输出中自动删除所有换行符

假设您正在使用如下代码构建一个以逗号分隔的链接列表:

- foos.each_with_index do |foo, i|
  = ', ' if i > 0
  = link_to foo.name, foo

如果逗号前面没有空格,你怎么做?我看不到任何方法可以使用现有的鳄鱼运算符或surround/ precede/来做到这一点succeed

有没有办法重写循环,以便您可以使用这些运算符?

4

2 回答 2

3

HAML 带有一个succeed可以在这里使用的方法:

- foos.each do |foo|
  = succeed (foo == foos.last) ? '' : ', ' do
    = link_to foo.name, foo

使用字符串插值或表达式,您可以有条件地显示空字符串或带空格的逗号。

于 2015-12-23T07:56:17.990 回答
1

由于 link_to 只是一个返回字符串的助手,因此您可以在单个语句中执行此操作:

- foos.each_with_index do |foo, i|
    = link_to(foo.name, foo) + (i < foos.length ? ', ' : '')

但是,您可能希望将此代码提取到帮助程序中并编写测试。

于 2012-06-28T23:02:43.553 回答