【问题标题】:Rails: AJAX + destroy action in controller not working?Rails:控制器中的 AJAX + 销毁操作不起作用?
【发布时间】:2012-10-21 23:56:16
【问题描述】:

您好,我目前正在制作一个包含用户、相册和照片的应用。当我上传图片时,我设法让 AJAX 为创建操作工作,但我无法让 AJAX 为删除工作。相反,它会将我重定向到图片的空白显示页面。谁能给我一些指导?

照片控制器:

def destroy
  @user = User.find(params[:user_id])
  @album = @user.albums.find(params[:album_id])
  @photo = @album.photos.find(params[:id])
  # @photo.destroy
  flash[:success] = "Photo successfully deleted."
  respond_to do |format|
    if @photo.destroy
      format.js
      # format.json { render json: @photo, status: :created, location: @photo}
      # redirect_to user_album_path(@user, @album)
    end
  end
end

destroy.js.erb(我应该有这个权利?)

$('.destroypicswrapper').remove(".<%= @photo.avatar.url %>");

_photodestroy.html.erb 部分:

<div class="picthumb <%= photo.avatar.url %>">
    <%= link_to image_tag(photo.avatar.url ? photo.avatar.url(:small) : @album.name), root_url %>
    <br>
    <%= link_to "Delete", user_album_photo_path(@user, @album, photo), :remote => true, method: :delete, data: { confirm: "Are you sure? "} %>
</div>

最后是最初发生删除的相册/edit.html.erb 页面:

<% provide(:title, "Edit album") %>

<%= render 'form' %>

<div class="destroypicswrapper">
    <% if @album.photos.any? %>
        <%= render :partial => 'photodestroy', :collection => @album.photos, :as => :photo %>
    <% end %> 
</div>

【问题讨论】:

  • 您的销毁链接缺少:remote =&gt; true
  • 感谢 gylaz。这解决了我的重定向问题,但 div 仍然没有删除 AJAX-ly。
  • 您能描述一下您现在看到的情况吗?
  • 当我点击删除按钮时,它会提示我“你确定吗?” (按计划),所以我点击是,然后没有 AJAX 发生(不按计划)。当我刷新时,我删除的图片被删除(按计划)。我认为我在 destroy.js.erb 中做错事
  • 我想出了一个新的策略来删除带有图片的 div,但它仍然不起作用。不过请检查我更新的 destroy.js.erb 和 _photodestroy

标签: ruby-on-rails


【解决方案1】:

我认为您不想将图像的完整 url 呈现为 div 类。另外,您的 Jquery 是错误的。试试这样的:

destroy.js.erb

$('.destroypicswrapper > #photo_<%= @photo.id %>').remove();

将您的 _photodestroy.html.erb 调整为:

<div class="picthumb" id="photo_<%= photo.id %>">

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-06-08
    • 1970-01-01
    相关资源
    最近更新 更多