0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

【Rails】deviseで使用できるヘルパーメソッド

Last updated at Posted at 2023-08-06

はじめに

deviseはユーザー認証機能を簡単に実装できるgemです。
導入後、便利なヘルパーメソッドを使用できるので頻用するものを紹介していきます。

RubyとRailsのバージョン

  • Ruby 2.7.7
  • Rails 6.0.6.1

deviseで使用できるヘルパーメソッド一覧

before_action :authenticate_user!
# コントローラーの先頭に記述。サインインユーザーのみ実行できるように制限出来る。

user_signed_in? 
# ユーザーがサインインしているかどうかを確認。

current_user 
# 現在サインインしているユーザーを指定出来る。

※deviseのmodelが「user」であると仮定します。
それ以外の場合は「user」部分を対応するmodel名に変更して下さい。

before_action :authenticate_user!

コントローラーの先頭に記述します。ログインンユーザーのみ実行出来るアクションを指定できます。
下記コードでは「new」「create」はログインユーザーのみ実行可能、それ以外ではログイン画面に遷移させる事が出来ます。
onlyを使用しなければ全てのアクションに対してログインを要求する事になります。

posts_controller.rb
class PostsController < ApplicationController
  before_action :authenticate_user!, only: %i[new create]
end

user_signed_in?

コントローラーやビューで使用し、ログインしているユーザーかどうか確認します。
下記はログインしているユーザーであれば新規投稿のリンクを表示、未ログインであれば投稿出来ないように制御しています。

index.html.haml
- if user_signed_in? 
  = link_to '新規投稿' new_post_path

current_user

現在ログインしているユーザーの情報を取得出来ます。

posts_controller.rb
#一部省略

def index
# 現在ログインしているユーザーの情報を取得して表示する処理
  @user = current_user

# 現在ログインしているユーザーの投稿情報を取得する処理
  @posts = current_user.Post
end

最後に

忘備録としてまとめました。現在転職目指して勉強中です。
間違いがあればご指摘いただければ幸いです。

参考文献

0
0
1

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
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?