通过rails 3.1rc4中的ajax删除对象

时间:2011-06-13 23:14:53

标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1

我有一个rails 3.1应用程序,我似乎无法通过ajax删除我的图像。我的代码是

def destroy
  @photo = Photo.find(params[:id])
  @photo.destroy
  respond_to do |format|
    format.html { redirect_to(user_photos_path(current_user)) }
    format.js   { render :nothing => true }
  end
end

然后在我的观点中我有

<%= link_to '(delete)', profile_photo_path(photo.profile, photo), :method => :delete if me %>

在我的application.js中我有

$('.delete_post').bind('ajax:success', function() {
  $(this).closest('tr').fadeOut();
});

它对我不起作用。它执行动作但不淡出

2 个答案:

答案 0 :(得分:0)

在你的ajax中:成功回调this没有像你期望的那样绑定到.delete_post链接。也许你可以在你的链接中添加ID,然后在你的控制器或模板中生成一些像$("#photo_17_delete").closest('tr').fadeOut();这样的javascript。这只是处理它的一种方法的一个例子。

答案 1 :(得分:0)

这是一个老问题,但我只想指出,使用链接来修改或破坏您的数据似乎是一种不好的做法。

您应该使用to_button

http://api.rubyonrails.org/classes/ActionView/Helpers/UrlHelper.html#method-i-button_to