当我尝试从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 .
所以,我不确定为什么会这样 - 这是我第一次遇到错误。
有人想指出我正确的方向吗?
谢谢!
答案 0 :(得分:1)
您可能有两个库加载jQuery两次。之前发生在我身上,我认为当时的ActiveAdmin有一个不同的jQuery依赖,因此jQuery加载两次并将所有调用加倍。
您的用户错误是因为用户已经被删除,所以第二次,它找不到它。