LoginSignup
1
1

More than 3 years have passed since last update.

deviseでログイン機能をつくろう! ❏Rails❏

Last updated at Posted at 2019-11-24

【基本】

deviseというgemを使えば、よくあるログイン機能を簡単に作成できます。

Gemfileに

Gemfile
gem 'devise'

を記述し

bundle install

を実行



その後、サーバーを再起動。

rails s

なぜなら、サーバーを起動した際にgemが反映されるからです。

rails g devise:install

で設定ファイルを作成。

rails g devise user

でモデルを作成し

rails db:migrate

を実行



自動で追記される↓

config/routes.rb
Rails.application.routes.draw do
  devise_for :users
#以下略

こいつのおかげで必要なルーティングが一気に生成され、current_userやuser_signed_in?などのヘルパーメソッドが使えるようになる。

rails g devise:views

でビューファイル作成。

以上!


【応用】

新規登録時にニックネームを登録できるようにする。

デフォルトで登録できる情報は、メールアドレスとパスワードの2つです。
ユーザーのニックネームも登録できるようにしたいものです。
カラムを追加する方法を見ていきましょう。

rails g migration AddNicknameToUsers nickname:string

でマイグレーションファイルを作成し

rails db:migrate

を実行

deviseでログイン機能を実装した場合のパラメーターの受け取り方は通常とは異なります。

app/controllers/application_controller.rb
 class ApplicationController < ActionController::Base
    before_action :configure_permitted_parameters, if: :devise_controller?

    def configure_permitted_parameters
      devise_parameter_sanitizer.permit(:sign_up, keys: [:nickname])
    end
  end

難しいことが書いてありますが要約すると、
nicknameカラムの情報をパラメータとしてサーバーに送信することを許可します。
ということです。



これで新規登録時に、ニックネーム・メールアドレス・パスワードの3点が登録できるようになります。



ではまた!

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