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

Ruby on Rails: sign out isn't working for devise with User

提问人:noloman 提问时间:8/10/2023 更新时间:8/10/2023 访问量:48

问:

我有以下路线: 我正在开发一个运动跟踪应用程序,我想为当前登录的用户提供。这是我的文件:tracked_exercisesroutes.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 UsersControllerusers/show

class UsersController < ApplicationController
  def show
    redirect_to root_path
  end
end

我设置设计的方式有问题吗?

谢谢!

Ruby-on-Rails 红宝石 路线 设计

评论


答:

1赞 Alex 8/10/2023 #1

method: :deletefor links 是 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

评论

0赞 noloman 8/11/2023
使用修复它,非常感谢!我将继续阅读 Devise 的 Hotwire 更新:)button_to