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?

【Rails】deviseを使ったユーザー管理機能の実装手順まとめ(初学者向け)

Posted at

今回は、Railsにユーザー管理機能を追加するために、
deviseというGemを使って実装する流れを勉強しました。

初学者なりに手順を整理してみたので、同じくこれから学ぶ方の参考になれば嬉しいです!

1. deviseを導入してUserモデルを作成する

まずは、認証機能を簡単に実装できるgem「devise」を使えるようにしていきます。

① Gemfileに追記してインストール

gem 'devise'

そのあとターミナルで

bundle install

を実行します。

② deviseの設定ファイルを作成する

rails generate devise:install

実行後、ターミナルに表示される指示(Mailer設定など)も忘れずに対応しておきます。

③ Userモデルを作成する

rails generate devise User

これでdevise対応のUserモデルができるので、

rails db:migrate

でマイグレーションを適用します。

2. 新規登録画面をカスタマイズする

続いて、新規登録画面を作って名前も登録できるようにしていきます。

① deviseのビューを作成

デフォルトのビューをカスタマイズするために、まずファイルをコピーします。

rails generate devise:views

これでapp/views/devise/フォルダが作られます。

② 新規登録フォームを編集

app/views/devise/registrations/new.html.erbに、以下のようにfirst_nameとlast_nameの入力欄を追加しました。

<div class="field">
  <%= f.label :first_name %><br />
  <%= f.text_field :first_name, maxlength: 6 %>
</div>

<div class="field">
  <%= f.label :last_name %><br />
  <%= f.text_field :last_name, maxlength: 6 %>
</div>

ポイント:

maxlength: 6で、最大6文字以内に制限しています。

3. Userモデルに「first_name」と「last_name」カラムを追加する

データベースにも名前を保存できるように、Userモデルにカラムを追加します。

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

rails generate migration AddNameToUsers first_name:string last_name:string

② マイグレーションを実行

rails db:migrate

これで、Userテーブルにfirst_nameとlast_nameのカラムが追加されました!

4. パラメータ許可の設定をする

deviseではセキュリティのため、許可したパラメータしか受け付けません。
なので、first_nameとlast_nameも許可する設定をします。

① ApplicationControllerを編集

app/controllers/application_controller.rbに以下を追加しました。

before_action :configure_permitted_parameters, if: :devise_controller?

protected

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

これで新規登録時に、名前も保存できるようになります!

学んだこと・気をつけたこと

:point_up:deviseはかなり便利だけど、「パラメータ許可」を忘れるとカラム追加しても保存できないので注意!

:point_up:入力制限(maxlength)も意識して、バリデーションを補助できる

:point_up:ターミナルでの指示(特にrails generate devise:install後)は、しっかり読む

まとめ

今回の流れはこの通りです。

1.deviseをインストールしてUserモデルを作成

2.ビューを生成して新規登録フォームを編集

3.Userモデルにfirst_nameとlast_nameカラムを追加

4.パラメータ許可設定をして保存できるようにする

初めてでも、ひとつひとつ順番に進めればちゃんと動かすことができました!

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