J'essaie d'accéder à une variable d'instance à partir d'un fichier js.erb.rails: accéder à une variable d'instance dans un fichier js.erb
#controller
def get_person
@person = Person.find(1)
respond_to do |format|
format.js{}
end
end
#get_person.js.erb
alert('<%= @person.last_name %>')
Lorsque je navigue à [controller_name_here] /get_person.js ... J'obtiens une erreur d'objet nul sur @person. (Je sais Person.find (1) retourne un objet)
Note: Je suis en fait de la difficulté à rendre une partie dans mon dossier js.erb et essaie d'identifier la cause.
Est-ce le problème alors partiel? Si c'est le cas, sachez que les partiels n'ont pas accès aux variables de classe de leur appelant. Vous devez transmettre tout ce à quoi vous voulez qu'il ait accès. – workmad3
Puisque je crée le partial dans mon fichier js.erb, mon fichier js.erb ne devrait-il pas avoir accès aux variables de classe? – Lee
Non. Vous devez les passer en local: <% = render (: partial => 'partials/foo', : locals => {: whatwhat => @somedata})%> – jonnii