4

私はこのように構成されているフォトギャラリーを持っています:

.container
  %li
    %a{src: image.src}
  %li
    %a{src: image.src}
  %li
    %a{src: image.src}

.container
  %li
    %a{src: image.src}
  %li
    %a{src: image.src}
  %li
    %a{src: image.src}

各コンテナには最大3つ必要%liです。

@images私がどこにいるとしましょう@images.count => 4

.container
  - for image in @images do
    %li
      %a{src: image.src}

この場合.containerは4であるため、このコードはページを壊します%li

.container3ごとにaが追加されるようにするにはどうすればよい%liですか?

4

3 に答える 3

7

メソッドArray#in_groups_ofがあなたが探しているものだと思います。

- @images.in_groups_of(3, false).each do |images|
  .container
    - images.each do |image|
      %li
        %a{src: image.src}

ちなみに、この方法を使用すると、欠落している画像の置換を定義することもできます

%w(1 2 3 4).in_groups_of(3, '_') {|group| p group}
# => ["1", "2", "3"]
# => ["4", "_", "_"]
于 2012-09-11T19:48:23.750 に答える
1

私はこのようなことを試みます:

- @images.each_slice(3) do |images|
  .container
    - images.each do |image|
      %li
        %a{src: image.src}
于 2012-09-11T19:50:11.060 に答える
0

@imagesでrubyのeach_sliceメソッドを使用する http://ruby-doc.org/core-1.9.3/Enumerable.html#method-i-each_slice

- @images.each_slice(3) do |i| ....
于 2012-09-11T19:47:51.187 に答える