rails“delete - destroy”不会自动刷新项目

时间:2013-06-07 14:22:32

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

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

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

控制器中有基本的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 %>

2 个答案:

答案 0 :(得分:2)

您需要删除:remote => true,否则页面将无法刷新。如果您想使用AJAX删除项目而不刷新页面,则需要使用Javascript自行删除该项目。我建议首先删除:remote => true,直到你真的需要做出异步的事情。

答案 1 :(得分:0)

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

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

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