这个问题与此类似,但有一个额外的皱纹:
Auto-removing all newlines from Haml output
假设您正在使用以下代码构建逗号分隔的链接列表:
- foos.each_with_index do |foo, i|
= ', ' if i > 0
= link_to foo.name, foo
如果不在逗号前面加空格,你怎么做?对于现有的鳄鱼操作员或surround
/ precede
/ succeed
,我认为没有办法做到这一点。
是否有某种方法可以重写循环以便您可以使用这些运算符?
答案 0 :(得分:2)
HAML附带succeed
方法,可在此处使用:
- foos.each do |foo|
= succeed (foo == foos.last) ? '' : ', ' do
= link_to foo.name, foo
使用字符串插值或表达式,您可以有条件地显示空字符串或带空格的逗号。
答案 1 :(得分:1)
由于link_to只是一个返回字符串的助手,因此您可以在一个语句中执行此操作:
- foos.each_with_index do |foo, i|
= link_to(foo.name, foo) + (i < foos.length ? ', ' : '')
但是,您可能希望将此代码提取到帮助程序中并编写测试。