Ich versuche, von einer js.erb-Datei auf eine Instanzvariable zuzugreifen.rails: Zugriff auf eine Instanzvariable in einer js.erb-Datei
#controller
def get_person
@person = Person.find(1)
respond_to do |format|
format.js{}
end
end
#get_person.js.erb
alert('<%= @person.last_name %>')
Wenn ich wechseln Sie zu [controller_name_here] /get_person.js ... Ich bekomme ein Null-Objektfehler auf @person. (Ich weiß, Person.find (1) gibt ein Objekt zurück)
Hinweis: Ich habe tatsächlich Probleme beim Rendern einer partiellen in meiner js.erb-Datei und versuche, die Ursache zu identifizieren.
Ist das Problem in der partiellen dann? Wenn das der Fall ist, sollten Sie wissen, dass Partialtöne nicht auf die Klassenvariablen ihres Aufrufers zugreifen können. Sie müssen alles eingeben, auf das Sie zugreifen möchten. – workmad3
Da ich das Teil in meiner js.erb-Datei erstelle, sollte meine js.erb-Datei nicht Zugriff auf Klassenvariablen haben? – Lee
Nein. Sie müssen sie als Locals übergeben: <% = render (: partielle => 'Partials/foo', : Einheimische => {: whatwhat => @somedata})%> – jonnii