Ruby on Rails:注销不适用于用户设备

问题描述 投票:0回答:1

我有以下路线: 我正在开发一个锻炼跟踪应用程序,我希望为当前登录的用户提供

tracked_exercises
。这是我的
routes.rb
文件:

Rails.application.routes.draw do
  resources :exercises
  devise_for :users
  resources :users do
    resources :tracked_exercises
  end
  root to: 'exercises#index'
end

但是,当我尝试使用

<%= link_to "Logout", destroy_user_session_path, method: :delete, class: "navbar-link"  %>
注销当前用户时,我首先遇到一个错误,提示
Uninitialized constant UsersController

然后在创建它之后,结果发现重定向将用户指向
users/show
,并且在有了这个控制器之后,注销永远不会起作用:

class UsersController < ApplicationController
  def show
    redirect_to root_path
  end
end

我的设置方式是否有问题?

谢谢!

ruby-on-rails ruby routes devise
1个回答
0
投票

method: :delete
链接是 Rails UJS 的事情。

<%= link_to "Logout", destroy_user_session_path,
  data: {turbo_method: :delete}
%>

# or better use a form
<%= button_to "Logout", destroy_user_session_path,
  method: :delete
%>

https://github.com/heartcombo/devise#hotwireturbo

© www.soinside.com 2019 - 2024. All rights reserved.