2011-06-23 11 views
5

Estoy usando Ruby on Rails 3.0.7 y jQuery 1.6.1 y me gustaría saber cómo manejar las variables de respuesta xhr, status y ex después de una solicitud AJAX.¿Cómo utilizar la solicitud de jQuery AJAX y el método de Ruby on Rails 'render' juntos?

La petición AJAX es:

$jQuery.ajax({ 
    type: "POST", 
    url:  "<request_to_the_controller_method>", // see the code below 
    error: function(xhr, status, ex) { 
    // handling with 'xhr', 'status' and 'ex' variables 
    } 
    success: function(jqXHR, status, ex) { 
    // handling with 'xhr', 'status' and 'ex' variables 
    } 
}); 

En el controlador que tengo:

respond_to do |format| 
    format.js { 
    render ... # here should be properly stated the Ruby on Rails 'render' method 
    :status => 200 
    } 
end 

¿Cómo se debe indicar en el controlador del método render para responder a la petición AJAX para que sea posible manejar valores de respuesta (xhr, status y ex variables) en la sección error o success de la solicitud AJAX? Entonces, ¿cómo puedo manejar los valores de respuesta después de recuperarlos (por ejemplo, para mostrar esos valores en un mensaje de alerta)?

En algunos mundos, lo que me gustaría hacer es (en el controlador) responder a una solicitud AJAX con algunos datos y luego (en el otro lado) manejar estos datos.

Respuesta

3

Ver

How do you handle Rail's flash with Ajax requests?

y

Error Handling with Ajax in Rails 3

así para más detalles. Aquí es an excellent article sobre el tema de los carriles, el conductor rieles jQuery EPU, jQuery, y rails.js

  1. Se encuentra remotas enlaces, formularios, e insumos, y anula sus eventos clic aquí para enviar al servidor a través de AJAX .
  2. Activa seis eventos de javascript a los que puede vincular devoluciones de llamada para trabajar con la respuesta de AJAX y manipularla.

Y a continuación, el artículo se mueve a través de cómo hacer todo esto usando jQuery, EPU y los carriles.