2012-06-19 12 views
13

quiero pasar algunos argumentos a la plantilla Javascript en mi aplicación Rails3 Lo que trato con el bloque respond_to es:argumento Pasando a '.js.erb' plantilla

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

También probé:

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

¿Estoy obligado a hacer id como una variable de instancia para la plantilla js a usar? ¿Cómo pasar variables a la plantilla aquí?

Respuesta

20

¿Funciona?

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

"acción" es su acción/nombre de la plantilla (índice, espectáculo, etc.)

+1

El comentario de Antonio tiene más sentido aquí. Definir la variable significa que no necesita intentar y pasar algo extra. – SortingHat

14

Como alternativa se puede definir @variable en su controlador y se debe poder acceder a ella en sus js. plantilla erb. Entonces no necesita pasar la variable como parámetro.

+0

Creo que los controladores deben definir menos ivars como sea posible, ¿no? – sekmo

Cuestiones relacionadas