好的,我有一个删除用户按钮
<button id="delete" data="<%= user_path(@user) %>">Delete User</button>
使用jquery ui
$("#delete").button();
我想点击删除用户,所以我有
$("#delete").click(function(){
if(confirm("Are you sure?")){
var url = $(this).attr('data');
$.post(url, {_method:'delete'}, null, "script");
document.location = '<%= users_path %>';
return false;
} else {
return false;
}
});
一切都很好但是当页面刷新时,我的摧毁行动没有闪光
def destroy
User.find(params[:id]).destroy
flash[:success] = "User deleted."
redirect_to users_path
end
有关如何解决此问题或重组我所做的任何建议。我不能只使用link_to或button_to来进行样式设计
答案 0 :(得分:3)
Flash数据仅适用于以下请求。它正在被你的AJAX回发“吃掉”。
当您post
通过$.post
时,您实际上是在发出两个请求; delete
请求在重定向后发出,并向get
发出users_path
个请求。 该请求会看到闪存数据。然后,当您将document.location
设置为users_path
时,不再需要渲染任何Flash数据。
你绝对不应该通过手动AJAX来处理这个问题。允许您像常规链接一样点击链接,并允许Rails的UJS处理回发/确认对话框。这应该不会影响你设置链接样式的能力,除非你做错了。