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
ただし、ユーザーが削除されている間、「よろしいですか?」というポップアップが表示されます。ボックスが 2 回表示され、次のエラーが表示されます。
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 .
そのため、なぜこれが起こっているのかわかりません。エラーに遭遇したのはこれが初めてです。
誰かが私を正しい方向に向けたいですか?
ありがとう!