尝试删除/销毁用户时出现奇怪的行为

时间:2013-02-05 19:19:41

标签: javascript jquery ruby-on-rails

当我尝试从Rails中的项目中删除用户时,我遇到了一些奇怪的行为。

简单地说,我的视图中有一个链接,允许管理员用户删除其他用户:

<%= link_to 'Delete User', user, :method => :delete, :confirm => "Are you sure?" %>

这是我的用户控制器中的代码:

# DELETE /users/1
# DELETE /users/1.json
def destroy
  @user = User.find(params[:id])
  @user.destroy

  respond_to do |format|
    format.html { redirect_to users_url }
     format.json { head :no_content }
  end
end

但是,当用户被删除时,弹出窗口“你确定吗?”框出现两次,然后出现以下错误:

ActiveRecord::RecordNotFound in UsersController#destroy
Couldn't find User with id=xxx

其中“xxx”是刚刚删除的用户ID。

进行一些搜索,有人建议这与我在项目中加载JavaScript的方式有关,并且可能与jQuery冲突(我正在使用jquery-rails gem)。但是,我的application.html.erb文件似乎很好:

<%= stylesheet_link_tag    "application","http://ajax.googleapis.com/ajax/libs/jqueryui/1.8/themes/smoothness/jquery-ui.css" %>

<%= stylesheet_link_tag    "application", :media => "all" %>
<%= javascript_include_tag "application" %>
<%= csrf_meta_tags %>

和我的application.js文件一样:

//= require jquery
//= require jquery_ujs
//= require jquery-ui
//= require_tree .

所以,我不确定为什么会这样 - 这是我第一次遇到错误。

有人想指出我正确的方向吗?

谢谢!

1 个答案:

答案 0 :(得分:1)

您可能有两个库加载jQuery两次。之前发生在我身上,我认为当时的ActiveAdmin有一个不同的jQuery依赖,因此jQuery加载两次并将所有调用加倍。

您的用户错误是因为用户已经被删除,所以第二次,它找不到它。