Frage

Wenn mit jedem Rahmen zu tun, mit denen Sie nicht 100% vertraut sind, habe ich fand es ratsam, alle überflüssigen Warnungen zu verstehen und zu bereinigen, zu versuchen, wenn auch nur so, dass Sie eine bessere Chance zu bemerken echte Fehler haben, wenn sie auftreten .

Der, den ich habe in letzter Zeit wurde immer ist:

 DEPRECATION WARNING: @model will not longer be implicitly assigned to model

Es scheint nichts in meiner aktuellen Code-Basis zu brechen, aber ich mache mir Sorgen, nur weil ich die Warnung nicht vollständig verstehen. Ich dachte, es im Allgemeinen besser war nicht in Ihrem partials zu verwenden @model.

Trotzdem diese Warnung wurde in seinem teilweise jedes Mal aufgerufen immer dieses besondere ‚Modell‘ angezeigt wird.

Wie soll ich es explizit zuweisen? Ich habe die @model in einem Controller erstellt, und nenne dann die teilweise mit einer Sammlung (verstand dies die ‚railsy‘ Methode.)

Kann mir jemand erklären, was mir hier vor sich geht, und dem, was in dieser Situation am besten Praktiken sind? Ich bin noch nicht ausgeflippt, aber die Meilen der Warnung neigen dazu, die reale Produktion aus meiner Anwendung zu übertönen.

War es hilfreich?

Lösung

In 2.3.5, ja, sollten Sie Ihren Code beheben. Sie verwenden die Lage sein, dies zu tun

@rocket_launcher = RocketLauncher.find(params[:id])
page.insert_html :bottom, 'ajax_this', :partial => 'rocket_launcher'

und es war in Ordnung (@rocket_launcher wurde im Teil aufgenommen). Nicht mehr, nicht länger. Nun müssen Sie tun

page.insert_html :bottom, 'ajax_this', :partial => 'rocket_launcher', :locals=>{:rocket_launcher=>@rocket_launcher}

Wie gesagt, Ihr Beispiel

<%=render :partial => "rocket_launcher", :collection => @rocket_launchers %>

ist kühl und die deprecation Warnungen in 2.2.x gesehen sollte nun behoben sein (in 2.3.5).

Andere Tipps

Nachdem Sie dieses Bild Leuchtturm Ticket ausgrub, würde ich nicht allzu besorgt sein; noch.

Unangemessen

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top