0

この質問はこれに似ていますが、余分なしわがあります。

Haml出力からすべての改行を自動削除

次のようなコードを使用して、リンクのコンマ区切りリストを作成しているとします。

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

カンマの前に空白を入れずにそれを行うにはどうすればよいですか?既存のワニの演算子またはsurround//でこれを行う方法がわかりません。precedesucceed

これらの演算子を使用できるようにループを書き直す方法はありますか?

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は文字列を返す単なるヘルパーであるため、1つのステートメントでそれを行うことができます。

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

ただし、このコードをヘルパーに抽出してテストを作成することをお勧めします。

于 2012-06-28T23:02:43.553 に答える