Usando rails3 y el prototipo (rails.js)link_to remotas => true no actualizar con el Ajax
Tengo una simple lista de productos con editar y borrar enlaces como imágenes. Al eliminar un producto, la lista no se actualiza. Al actualizar la página, se muestra que el producto se ha eliminado.
/app/views/products/list.rhtml
<div id="product_list">
<%= render :partial => 'list' %>
</div>
/app/views/products/_list.rhtml
<%= link_to image_tag("delete.png"), { :controller => 'products', :action => 'destroy', :id => product }, :method => :delete, :confirm => "Are you sure?", :remote => true %>
/app/controllers/products.rb
def destroy
Product.find(params[:id]).destroy
@products = Product.all
end
/app/views/products/destroy.rjs (no estoy seguro de qué hacer con eso ...)
$(document).ready(function() {
$("#product_list").html("<%= escape_javascript(render(:partial => "list")) %>");
});
Así que el enlace remoto parece funcionar bien. no estoy seguro de cómo utilizar la devolución de llamada Ajax para actualizar #product_list
traté de poner lo siguiente en la cabecera de la página:
$(document).ready(function(){
$('#product_list').bind("ajax:success", function(evt, data, status, xhr){
alert('hello');
})
});
pero no es ejecutado (que probablemente no es válida código para el prototipo) y yo no sabría de todos modos qué código poner dentro para que mi lista se actualice después de destruir un producto
Cualquier ayuda (que no sea "use jQuery") es muy apreciada.
EDITAR: Aquí está el registro del servidor para la acción de eliminación (después moví el javascript arriba para destroy.js.erb)
Started POST "/products/destroy/3" for 127.0.0.1 at .....
Processing by ProductsController#destroy as JS
Parameters: {"_"=>"", "id"=>"3"}
[1m[36mProduct Load (0.0ms)[0m [1mSELECT `products`.* FROM `products` WHERE (`products`.`id` = 3) LIMIT 1[0m
[1m[35mSQL (0.0ms)[0m BEGIN
[1m[36mSQL (0.0ms)[0m [1mDELETE FROM `products` WHERE (`products`.`id` = 3)[0m
[1m[35mSQL (78.1ms)[0m COMMIT
[1m[36mProduct Load (0.0ms)[0m [1mSELECT `products`.* FROM `products`[0m
Rendered products/destroy.js.erb within layouts/standard (31.2ms)
Completed 200 OK in 312ms (Views: 62.5ms | ActiveRecord: 78.1ms)
Procesamiento por ProductsController # destruir como JS que el control remoto enlace funciona
[36m Carga de producto (0.0ms) [0m [1mSELECCIONAR products
. DE products
* Los @products = Product.all se ejecuta
productos prestados/destroy.js.erb dentro de los diseños estándar/ la FIE Javascript se hace
Así que ahora supongo que es un problema con el javascript . código:
$ (document) html ready (function() {$ ("# product_list") ("<% = escape_javascript (render (: parcial => "" %))>" lista); });
¿Ese tipo de código es compatible con el prototipo? No uso jQuery ...
Hola, puedes echar un vistazo a la edición anterior. Je ajax y js.erb son ejecutados y representados. Podría ser un problema con el código js –