2011-02-10 13 views
5

tengo una petición Ajax desde una página en mi aplicación Rails que se ve así:¿Cómo obtengo las variables de Rails de mis datos jQuery Ajax devueltos?

$.ajax({ 
type: 'POST', 
url: '/users/create/', 
data: "screen_name=<%[email protected]_name%>", 
success: createSuccessHandler, 
error: createErrorHandler, 
complete: hideLoadingImage 
}); 

Y actualmente la acción responde con esto:

respond_to do |format| 
    format.js { render :text => @user} 
    format.html { redirect_to @user } 
end 

La acción Crear funciona bien, pero cómo Obtengo los valores devueltos (datos) en mi método de éxito para poder hacer algo como esto.

function createSuccessHandler(data) { 

    $("#div1").append(data.value1); 
    $("#div2").append(data.value2); 

} 

Básicamente estoy tratando de dividir los datos arriba en diferentes variables.

+0

¿Intentó trabajar con render: text => @ user.to_json? – apneadiving

Respuesta

4

Regrese json en su controlador (por ejemplo, agregue una estrofa format.json y solicite que en lugar de la .js uno). Luego, en su función de createSuccessHandler que va a hacer algo como:

var foo = eval(data); 
$("#div1").append(foo.value1); 
$("#div2").append(foo.value2); 

Tenga en cuenta que algunas bibliotecas de JavaScript (como jQuery) proporcionan formas más seguras para manejar JSON que el uso de eval, no dude en utilizar aquellos en su lugar.

+0

Json es. ¡Gracias! – Lee

Cuestiones relacionadas