Использование rails3 и прототип (rails.js)link_to дистанционного => верно не обновление с помощью AJAX
У меня есть простой список продуктов с редактировать и удалять ссылки в виде изображений. При удалении продукта список не обновляется. Обновление страницы показывает, что продукт действительно удален.
/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 (не уверен, что с этим делать)
$(document).ready(function() {
$("#product_list").html("<%= escape_javascript(render(:partial => "list")) %>");
});
Таким образом, удаленная связь работает нормально. Я не знаю, как использовать AJAX обратного вызова для обновления #product_list
Я пытался поставить следующие в голове страницы:
$(document).ready(function(){
$('#product_list').bind("ajax:success", function(evt, data, status, xhr){
alert('hello');
})
});
Но это не выполняется (это, вероятно, не является допустимым код для прототипа), и я все равно не знаю, какой код ввести внутрь, чтобы мой список обновлялся после уничтожения продукта.
Любая помощь (кроме использования jQuery) приветствуется!
EDIT: Вот лог-сервер для удаления действия (после того, как я переехал JavaScript выше для 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)
Обработка по ProductsController # уничтожить как JS так удаленный строительные работы
[36mПродукция груза (0,0ms) [0m [1mSELECT products
. ИЗ products
* В @products = Product.all выполняется
Оказываемой продукции/destroy.js.erb в макетах/стандартной Javascript тьфу визуализируются
Так что теперь я думаю, что это проблема с JavaScript . код:
$ (документ) .ready (функция() { $ ("# product_list") HTML ("<% = escape_javascript (Render (: частично => "список"))%>"); });
Этот код поддерживается прототипом? Я не использую jQuery ...
Привет, вы можете взглянуть на приведенное выше изменение. Je ajax и js.erb выполняются и отображаются. Может возникнуть проблема с кодом js – 2010-12-10 01:22:08