2017-11-21 10 views
1

Ich habe eine Änderung Avatar Popup in meinem Rubin auf Schienen-Anwendung. Ich versuche, es für mehrere Modelle wie Profilbild oder Bild eines Produkts zu ändern.Ruby on Rails render teilweise, undefined lokale Variable

Ich habe eine Ansicht erstellt und versucht, es mit Parametern zu öffnen, wie in der user.html.erb Datei folgt:

<div id="myModal_change_avatar" class="modal-dialog fade-scale"> 
<div class="modal-content"> 
    <div style="height: 100%;width: 100%" id="id_model_content"> 
    <%= render partial: 'change_avatar/index', locals: { par:'param'} %> 
    </div> 
</div> 
</div> 

In meiner _index.html.erb Datei, die unter views/change_avatar befindet:

<h1><%= par %></h1> 

Aber ich "undefined lokale Variable oder Methode` par‘für" wenn ich user.html.erb Datei öffnen.

Ich kann nicht sehen, was ich vermisse.

Irgendwelche Vorschläge?

Danke.

+0

Können Sie die Ausgabe der Webkonsole anzeigen? Sollte Ihnen sagen, ob es keinen Wert oder eine Deklaration von "par" in der partiellen oder der übergeordneten Datei findet. Wo der Fehler in der Kette auftritt, sollte Ihnen mehr über das Problem erzählen. – Beartech

Antwort

3

Ich habe dieses Problem in der Vergangenheit auch erlebt und nicht ganz sicher, was es verursacht, aber in meinem Fall schien es zutiefst verschachtelte Teiltöne zu sein (aber nur für ein paar Ansichten).

Die Lösung besteht darin, auf die lokale Variable vom local_assigns-Hash zuzugreifen. Was ich dazu neigen, ist es an der Spitze der Seite, auf einer lokalen Variablen zu tun zuweisen so: -

<% par ||= local_assigns[:par] %> 

Hoffnung, das hilft.

+0

local_assigns [: par] scheint der Schlüssel zu sein. Danke vielmals –

Verwandte Themen