7

Die Verwendung von lokalen Variablen scheint in einem Teil ratsam, die anwendungsweit verwendet werden könnte, um Abhängigkeiten zwischen der Anwendung zu vermeiden.Sollten Sie nur lokale Variablen in einem Teil verwenden?

Aber innerhalb eines einzelnen Controllers scheint es akzeptabel, Instanzvariablen zu referenzieren, von denen Sie wissen, dass sie in allen Aktionen verfügbar sind, die das partielle verwenden.

Wenn Sie dies tun, scheint jedoch das Risiko zu bestehen, dass eine bestimmte Aktion geändert wird, damit die Instanzvariable nicht mehr in der Ansicht angezeigt wird. Dann würde das Teil aufhören zu arbeiten. Ich bin mir nicht sicher, ob das wirklich ein Problem ist, da bei einer normalen Ansicht das gleiche Risiko besteht.

Ist es wichtig, wenn Sie Instanzvariablen in einem Teil referenzieren?

Antwort

7

Sie sind heute auf einer Rolle! :-)

Sie können Variablen in den Teil als :locals übergeben, um dies alles schön und sauber zu halten. Zum Beispiel

render :partial => 'my_partial', :locals => { :some_variable => some_variable, :some_important_value => 'an important point!' } 

Diese Variablen sind dann in der Teilansicht zur Verfügung:

<%= some_variable %> 
<%= some_important_value %> 

Allerdings gibt bei der Verwendung von Instanzvariablen in Ihrem partials nichts speziell falsch ist.

+0

Danke für Ihre Reaktion wieder :) Also, würden Sie sagen, dass es immer akzeptabel ist, eine Instanz zu verweisen Variable in einem Teil oder ist es fair zu sagen, dass dies eine inakzeptable Abhängigkeit schafft? – eggdrop

+0

Äh, es ist in Ordnung. Instanzvariablen sind während Ihrer gesamten Sitzung verfügbar, so wie Sie sagen, es ist nicht besser oder schlechter als den Zugriff auf eine in der richtigen Ansicht. –

2

ich würde nur empfehlen, so lange Instanz Variablen wie die teilweise nicht geteilt wird, da dies sehr schnell verwirrend erhalten kann;)