"> "> " />

Ruby On Rails: Render Collection

Me gustaría mostrar una imagen específica en la primera iteración cuando se llama la plantilla parcial, pero no el resto:

view file:

<% @categories.each do |category,i,category_locales| %>
    <div class="featured_deals">
        <%= render :partial => "medium_deal", :collection => category_locales, :as => :deal_locale %>
      </div>
<% end %>

archivo medium_deal:

<% deal = deal_locale.deal %>

<%= image_tag 'layout/featured_deal_left_blue.png', :style => 'float: left; padding-top: 11px;' %> 
# I only want this image to show for the FIRST element of category_locales, but not the rest.

<div class="featured_deal_wrapper">
        Hello     
</div> 

Intenté pasar un contador en el primer archivo de vista, pero no se incrementa hasta que "cada" pase de nuevo.

0

1 Respuestas

Deberías poder hacer esto:

<% if deal_locale_counter == 0 %>
  <%= image_tag 'layout/featured_deal_left_blue.png', :style => 'float: left; padding-top: 11px;' %> 
<% end %>

See: http://guides.rubyonrails.org/layouts_and_rendering.html#local-variables

0
agregado