Przekazanie zmiennej lokalnej do partiala

Chciałbym przekazać zmienną lokalną(zmienna nie ma odzwierciedlonego pola w modelu) do partiala.

<%= render :partial => 'info', :locals => {:info => first, :img_style => "original"} %>

:img_style będzie stylem dla obrazka.

Jednak to nie działa, dostaje błąd:

undefined local variable or method `img_style' for #<#<Class:0xb471f34>:0xb470cc4>

Chciałbym po prostu żeby w partialu nadawana była klasa dla obrazka w zależności od przekazanej zmiennej:

<%= image_tag(info.image.url, :class => img_style),  info %>

Da się to jakoś zrobić, bez tworzenia nadmiarowych partiali?
Z góry dzięki za pomoc.

to powinno po prostu działać.

No właśnie powinno, a nie działa…

To nie działa:

[code=ruby]# infos/index.html.erb
<% first = @infos.shift %>

<% @aimg_style = "original"%> <%= first %> <%= render 'info', :locals => {:info => first, :img_style => @aimg_style } %>
[/code] A to działa: [code=ruby]# infos/index.html.erb <% @infos.each do |e| %>
  • <%= render :partial => 'info', :locals => {:info => e, :img_style => "original"} %>
  • <% end %>[/code] Ktokolwiek wie bądź potrafi wytłumaczyć dlaczegóż?

    http://api.rubyonrails.org/classes/ActionView/Partials.html - w sumie mało czytania, a powinno rozjaśnić.

    W skrócie następujące wywołanie:

     <%= render :partial => 'info', :locals => {:info => e, :img_style => "original"} %>

    Można skrócić do:

     <%= render 'info', :info => first, :img_style => @aimg_style %>

    I to ostatnie jest już bez locals, tu był błąd.

    Krótka odpowiedź dlaczego pierwszy sposób działa, a drugi: