0

「靴」というモデルに属する「写真」というモデルがあります。Carrierwave を使用して複数の画像をアップロードしています。

index.html.erb

  <% shoes.each do |shoe| %> 
    <div class="shoe">
      <div class="gallery">
        <% shoe.photos.each do |photo| %>
          <%= link_to image_tag(photo.photo_file.url(:thumb).to_s), photo.photo_file.url.to_s, :class => 'fancybox', :rel => 'gallery' %>
        <% end %>
      </div>
    </div>
  <% end %>

これを出力します:

<div class="shoe">
     <div class="gallery">
        <a class="fancybox" href="../nike-kd-6-meteorology-2.jpg" rel="gallery">
           <img src="../thumb_nike-kd-6-meteorology-2.jpg">
        </a>
        <a class="fancybox" href="../nike-kd-6-meteorology-2.jpg" rel="gallery">
           <img src="../thumb_nike-kd-6-meteorology-2.jpg">
        </a>
        <a class="fancybox" href="../nike-kd-6-meteorology-2.jpg" rel="gallery">
           <img src="../thumb_nike-kd-6-meteorology-2.jpg">
        </a>
     </div>
</div>

しかし、各ギャラリーの最初の画像に独自のクラスを持たせ、残りの画像に独自のクラスを持たせたいと思っています。このようなもの:

        <a class="firstclass" href="../nike-kd-6-meteorology-2.jpg" rel="gallery">
           <img src="../thumb_nike-kd-6-meteorology-2.jpg">
        </a>
        <a class="fancybox" href="../nike-kd-6-meteorology-2.jpg" rel="gallery">
           <img src="../thumb_nike-kd-6-meteorology-2.jpg">
        </a>
        <a class="fancybox" href="../nike-kd-6-meteorology-2.jpg" rel="gallery">
           <img src="../thumb_nike-kd-6-meteorology-2.jpg">
        </a>

これどうやってするの?

また、各ギャラリーに独自の一意の ID を持たせたいのですが、これを追加しようとすると:

:rel => 'gallery<%= shoe.id %>'

構文エラーが発生します。

ありがとう。

4

1 に答える 1

1

このようなもの?

<% shoes.each do |shoe| %> 
  <div class="shoe">
    <div class="gallery">
      <% shoe.photos.each_with_index do |photo, index| %>
        <% image_class = index.zero? ? "firstclass" : "fancybox" %>
        <%= link_to image_tag(photo.photo_file.url(:thumb).to_s), photo.photo_file.url.to_s, :class => image_class, :rel => "gallery_#{shoe.id}" %>
      <% end %>
    </div>
  </div>
<% end %>
于 2013-06-24T22:19:35.570 に答える