每當我嘗試刪除用戶時,都會收到錯誤:Couldn't find User with 'id'=8
。錯誤指向「current_user」方法中的application_controller.rb
一行:ActiveRecord::RecordNotFound at /users
。 「/用戶」是我試圖重定向到的地方。Ruby on Rails 4:刪除用戶觸發器錯誤
我不知道我要去哪裏錯。我不知道這是application.html.erb file
中我錯過的<%= javascript_include_tag ... %>
。
application_controller.rb
def current_user
@current_user ||= User.find(session[:user_id]) if session[:user_id]
end
users_controller.rb
def delete
@user = User.find(params[:id])
end
def destroy
@user = User.find(params[:id]).destroy
flash[:warning] = '#{@user.name} has been deleted.'
redirect_to users_path
end
sessions_controller.rb
class SessionsController < ApplicationController
def create
user = User.find_by(email: params[:email])
if user && user.authenticate(params[:password])
session[:user_id] = user.id
if request.referrer == login_url
redirect_to root_path
else
redirect_to :back
end
else
flash.now[:danger] = "Email and password did not match. Please try again."
render :new
end
end
def destroy
session[:user_id] = nil
flash[:success] = "Logged out."
redirect_to :back
end
end
組的意見/用戶/ show.html.erb
<p id="notice"><%= notice %></p>
<h2 id="page-title"><%= @user.name %> <small>@<%= @user.username %></small>
<div class="small pull-right"></div>
</h2>
<hr/>
<% @user.types.each do |type| %>
<h4><small><%= type.name %></small></h4>
<% end %>
<% if current_user == @user %> # visible to current_user
<div class="float-right">
<%= link_to 'Edit', edit_user_path(@user), class: 'btn btn-default' %>
<%= link_to 'Delete Account', user_path,
data: { confirm: 'Are you sure you want to delete your account forever?' },
method: :delete, class: 'btn btn-danger' %>
</div>
<% end %>
如果你需要的文件了,讓我知道。
我覺得這是一個簡單的修復。請幫忙。並提前謝謝你!
第一個作品!謝謝@RajeshSharm! – BB123