我有一个带删除按钮的脚手架。
当我点击删除按钮时,该项目不会刷新以显示它已被删除。
控制器中有基本的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 %>
答案 0 :(得分:2)
您需要删除:remote => true
,否则页面将无法刷新。如果您想使用AJAX删除项目而不刷新页面,则需要使用Javascript自行删除该项目。我建议首先删除:remote => true
,直到你真的需要做出异步的事情。
答案 1 :(得分:0)
您在远程方法结束时重定向,这意味着返回页面的响应不会有太大帮助!相反,您应该删除重定向并添加一个带有操作名称(destroy.rjs
或destroy.js.erb
的javascript文件,具体取决于您的环境)。
然后将在操作结束时调用javascript文件,您可以向该文件添加刷新包含已更改项目的div所需的脚本。
或者,不要将其作为javascript链接删除,删除:remote => true
,它将被视为html请求,重定向将起作用。