2012-06-19 5 views
13

Chcę przekazać pewne argumenty do mojego szablonu JavaScript w aplikacji Rails3 Co mogę spróbować z bloku respond_to jest:Przechodząc do argumentu „” .js.erb szablonu

respond_to do |format| 
     format.js({:id=>params[:id]}) 
    end 

Próbowałem również:

respond_to do |format| 
     format.js(params[:id]) 
    end 

Czy zostałem zmuszony do wprowadzenia identyfikatora jako zmiennej instancji do użycia szablonu js? Jak przekazać zmienne do szablonu tutaj?

Odpowiedz

20

Czy to działa?

respond_to do |format| 
    format.js { render "action", :locals => {:id => params[:id]} } 
end 

„działanie” to akcja/nazwa szablonu (index, show, itp)

+1

Komentarz Antonio ma tutaj większy sens. Zdefiniowanie zmiennej oznacza, że ​​nie musisz próbować przekazywać czegoś dodatkowego. – SortingHat

14

Jako alternatywę można zdefiniować @zmienna w kontrolerze i należy mieć do niego dostęp w swoim js. szablon erb. Wtedy nie musisz przekazywać zmiennej jako parametru.

+0

Myślę, że kontrolerzy powinni zdefiniować mniej ivars, jak to możliwe, prawda? – sekmo