Meine erste Begegnung mit Partials in Ruby on Rails sah etwa so aus:
render :partial => 'item', :collection => @items
Und in Partial selbst sah das meistens dann so aus:
Ich ließ mich durch dieses Beispiel zu der Annahme verleiten, daß wenn die Collection oben aus @items
besteht, die lokale Variable im Partial dann der Singular davon (in diesem Fall also item
) sein müßte. Umso erstaunter war ich, daß folgendes nicht funktionierte.
render :partial => "milestone/show", :collection => @project.milestones
Meiner Logik nach wäre nun im Partial die lokale Variable milestone
. Da war Rails jedoch ganz anderer Meinung. Erst nach einem genaueren Studium von ActionView::Partials klärte sich die Fehleinschätzung auf. Der Name der lokalen Variable leitet sich aus dem Namen des Partials ab. Somit wäre der Name der Variable im zweiten Beispiel show
. Das Partial für das zweite Beispiel sieht nun in etwa so aus: