Ruby On Rails: Render Collection

Ik wil graag een specifieke afbeelding weergeven in de eerste iteratie wanneer de gedeeltelijke sjabloon wordt aangeroepen, maar niet de rest:

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 %>

medium_deal bestand:

<% 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> 

Ik heb geprobeerd een teller in het eerste weergavebestand door te geven, maar deze wordt niet opgehoogd totdat de 'elke' opnieuw wordt weergegeven.

0

1 antwoord

U zou dit moeten kunnen doen:

<% 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
toegevoegd