1

我有一个带有删除按钮的脚手架。

当我单击删除按钮时,该项目不会刷新以显示它已被删除。

控制器中有基本的redirect_to:

  def destroy
    @print = Print.find(params[:id])
    @print.destroy
    redirect_to prints_url, :notice => "Successfully Deleted Print Order."
  end

我怀疑导致问题的javascript部分

这是我的 application.js 中列出的内容

//= require jquery
//= require jquery_ujs
//= require twitter/bootstrap
//= require jquery-fileupload
//= require_tree .

我的 application.html.erb

   <%= javascript_include_tag "application" %>

可能是什么问题呢?

编辑:视图

<%= link_to t('.destroy', :default => t("helpers.links.destroy")),
              print,
              :method => :delete,
             :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
              :class => 'btn btn-mini btn-danger',
              :remote => true %>
4

2 回答 2

2

需要删除:remote => true,否则页面不会刷新。如果您想使用 AJAX 删除该项目而不刷新页面,那么您需要使用 Javascript 自己删除该项目。我建议从删除开始,:remote => true直到你真的需要异步做事情。

于 2013-06-07T14:36:59.297 回答
0

您在远程方法结束时重定向,这意味着返回页面的响应不会有太大帮助!相反,您应该删除重定向并添加一个带有操作名称(destroy.rjsdestroy.js.erb取决于您的环境)的 javascript 文件。

然后将在操作结束时调用 javascript 文件,您可以向该文件添加刷新包含已更改项目的 div 所需的脚本。

或者,不要将此作为 javascript 链接,删除:remote => true它,它将被视为 html 请求并且重定向将起作用。

于 2013-06-07T14:39:32.127 回答