【Rails】deviseジェムで使えるコントローラーフィルターとよく使うヘルパーメソッド

ユーザー登録やログイン機能を簡単に実装できるdeviceジェム。
導入方法ではなく、アプリケーションで使えるController filters(before_action) とよく使うhelpersを紹介します。モデルはUserの場合です。

コントローラーフィルター (before_action)

// users_controller.rb
before_action :authenticate_user!

コントローラーに記載することで、そのコントローラーのアクションは認証された(ログインしている)ユーザーのみ実行可能になります。

コントローラー全体ではなく、特定のアクションに限定したいときは、

before_action :authenticate_user!, only: [:アクション名, ・・・]

と、only以下にアクション名を記載。

ヘルパー メソッド

ヘルパーメソッドとは、動的なビューの中で使用できるメソッドです

user_signed_in?

ユーザーがサインインしている場合、trueを返します。

current_user

user_signed_in?がtrueの場合、現在ログインしているユーザーのレコードを取得できます。
current_user.id,current_user.nameなどとして使用できます。
user_signed_in?がfalseの場合、 エラーになります。

コメント

タイトルとURLをコピーしました