0

当我尝试从 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-railsgem)。但是,我的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 .

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

有人愿意为我指出正确的方向吗?

谢谢!

4

1 回答 1

1

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

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

于 2013-02-05T19:28:26.497 回答