link_to remote => true без обновления с помощью ajax

Использование rails3 и prototype (rails.js)

У меня есть простой список продуктов со ссылками на редактирование и удаление в виде изображений. При удалении товара список не обновляется. Обновление страницы показывает, что продукт действительно был удален.

/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») приветствуется!

РЕДАКТИРОВАТЬ : Вот журнал сервера для действия удаления (после того, как я переместил указанный выше 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 # destroy как JS , поэтому удаленная ссылка работает

[36mProduct Load (0,0ms) [0m [1mSELECT products . ] FROM products * Выполняется @products = Product.all

Rendered products / destroy.js.erb в пределах layout / standard javascript fie отображается

Итак, теперь я думаю, что это проблема с кодом javascript:

$ (document) .ready (function () { $ ("# product_list"). html ("<% = escape_javascript (render (: partial =>" list "))%>"); });

Поддерживается ли такой код в прототипе? Я не использую jQuery ...

7
задан 10 December 2010 в 01:21
поделиться