LoginSignup
1
2
記事投稿キャンペーン 「Rails強化月間」

Railsでログアウトボタンを作成する際のHTTPメソッド変更

Posted at

Railsでログアウトボタンを作成する際のHTTPメソッド変更

Railsでログアウトボタンを実装する場合、通常はlink_toヘルパーメソッドを使用します。ログアウトの操作はセッションを削除するアクションとして、HTTPメソッドとしてはDELETEが適しています。しかし、link_toヘルパーメソッドはデフォルトでHTTPメソッドがGETに設定されています。そのため、HTTPメソッドをDELETEに変更する必要があります。これはTurboフレームワークを使用する場合に特に重要です。

1. ログアウトボタンの作成

まず、ログアウトボタンを作成します。通常、link_toヘルパーメソッドを使用して次のように記述します。

<%= link_to 'ログアウト', logout_path %>

2. HTTPメソッドの変更

link_toヘルパーメソッドを使用する場合、HTTPメソッドを変更する必要があります。これはTurboフレームワークの仕様に合わせたものです。ログアウトアクションをDELETEメソッドに変更するため、以下のように記述します。

<%= link_to 'ログアウト', logout_path, method: :delete, data: { turbo_method: :delete } %>

このコードのポイント:

  • method: :delete:これにより、HTTPメソッドがDELETEに設定されます。
  • data: { turbo_method: :delete }:Turboフレームワークのために、HTTPメソッドをDELETEに指定します。

3. ログアウトアクションの設定

ログアウトボタンを機能させるには、コントローラーにログアウトアクションを設定する必要があります。通常、SessionsControllerなどのコントローラー内でセッションを削除するアクションを作成します。

def destroy
  reset_session
  redirect_to root_path, notice: 'ログアウトしました'
end

このアクションはセッションをリセットし、ユーザーをログアウト状態にします。

ログアウトボタンが正しく設定されている場合、ユーザーがクリックするとセッションが削除され、ログアウトが実行されます。

以上の手順に従うことで、Turboフレームワークと共にRailsでログアウトボタンを作成し、HTTPメソッドをDELETEに変更することができます。これにより、セキュアなログアウト機能を実現できます。

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2