ich keine Erfahrung haben, aber wahrscheinlich schreiben Sie weniger Code @var_name
verwenden, aber wenn die Sie zwei Aktionen lassen sagen haben, die die gleiche Ansicht mit verschiedenen Objekten lassen Sie uns eine mit Bar mit foo und die anderen sagen, machen Sie Wahrscheinlich würde man Einheimische benutzen wollen.
Anstelle von @vars müssen Sie den gleichen var_name verwenden, der nicht wirklich darstellt, was drin ist. Wie: Es ist eine Liste von was ??
def bars
@list = Bar.all
erb :something
end
def foos
@list = Foo.all
erb :something
end
Oder vielleicht sollten Sie mit @vars gut sein, weil die meiste Zeit Sie eine Ansicht wiederverwenden, wenn Sie die gleiche Art von Objekten wie machen:
def foos
@foos = Foo.all
erb :something
end
def bar_foos
@foos = Foo.where(bar: true)
erb :something
end
So möchten Sie wahrscheinlich nur verwenden, Locals beim Rendern von Teiltönen, die meistens in verschiedenen Kontexten verwendet werden. Wie ein Formular, wenn Sie für eine @new_bar und eine vorhandene @ -Bar rendern. Nur ein Beispiel. Oder zum Beispiel ein @ current_user oder ein einfacher @user
Danke für die ausführliche Antwort! – 0xSina
Gute Antwort. Meine 2 Cent - wo immer möglich, beschränken den Umfang einer Variablen. Ich benutze immer Einheimische, wenn ich kann (die Rails Abhängigkeit von Instanzvariablen macht mich schaudern!) Der absurde Kontrapunkt wäre, warum nicht globale Variablen verwenden? Sie werden wegen des fehlenden Umfangs als schlecht angesehen, und Instanzvariablen sind nicht anders. Wo ich Instanzvariablen verwende, werden Werte an das Layout übergeben (Titel, zusätzliche Stylesheet-Referenzen ...) und Werte, die in 'before'- und' after'-Handlern gesetzt sind. – iain