Techioz Blog

Ruby on Rails: ユーザーのデバイスでサインアウトが機能しない

概要

次のルートがあります。 私は運動追跡アプリを開発していて、現在ログインしているユーザーに対して 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” %> を使用して現在のユーザーをログアウトしようとすると、最初に「初期化されていない定数 UsersController」というエラーが発生します。 次に、それを作成した後、リダイレクトがユーザーをユーザー/ショーにポイントしていることがわかり、このコントローラーを使用した後、ログアウトが機能しません。

class UsersController < ApplicationController
  def show
    redirect_to root_path
  end
end

私のデバイスの設定方法が間違っているのでしょうか?

ありがとう!

解決策

リンクのメソッド: :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://translate.google.com/translate?hl=ja&sl=en&tl=ja&u=https://github.com/heartcombo/devise#hotwireturbo