Đối với đơn đăng ký của tôi, tôi có tài khoản người dùng mà mọi người có thể đăng ký. Tôi sử dụng đá quý devise
để thiết lập.Rails - Làm thế nào để tiêu diệt người dùng tạo theo Devise?
Tôi cũng có trang người dùng liệt kê tất cả người dùng đã đăng ký trang web cùng với liên kết destroy
. Tôi muốn quản trị viên của mình có thể xóa người dùng và chuyển hướng người dùng đến trang danh sách người dùng này. Nhưng khi tôi nhấp vào liên kết để tiêu diệt một người dùng cụ thể, nó chỉ chuyển hướng đến trang hồ sơ người dùng và không xóa người dùng khỏi cơ sở dữ liệu.
Có ai biết tại sao không?
** CẬP NHẬT: Đã cập nhật mã bên dưới như được đề xuất và hoạt động ngay bây giờ.
users_controller.rb
def destroy
@user = User.find(params[:id])
@user.destroy
if @user.destroy
redirect_to root_url, notice: "User deleted."
end
end
người dùng/index.html.erb
<div class = "container">
<div id="usersview">
<b>USERS DIRECTORY</b>
<%= render @users %>
</div>
<center>
<%= will_paginate @users %>
</center>
</div>
người dùng/_user.html.erb
<div class="comments">
<%= link_to user.name, user %>
<% if current_user.try(:admin?) && !current_user?(user) %>
<%= link_to "Destroy", admin_destroy_user_path(user), method: :delete, data: { confirm: "You sure?" } %>
<% end %>
</div>
routes.rb
devise_for :users
match 'users/:id' => 'users#destroy', :via => :delete, :as => :admin_destroy_user
match 'users/:id' => 'users#show', as: :user
resources :users
Tôi đã cập nhật (xem câu hỏi đã chỉnh sửa) như bạn đã lưu ý nhưng cùng một kết quả.Không phá hủy và lộ trình để hiển thị trang. Có thể tuyến đường của tôi không đúng thứ tự không? – spl
thử đặt tuyến tùy chỉnh phía trên lệnh gọi 'devise_for'. – AlexBrand
Tôi không nghĩ rằng bạn cần có tài nguyên ': users' – AlexBrand