rails6 deviseを使用する

rails6 deviseを使用する

rails6で、ログイン機能が使用できるdeviseをインストールして使用するまでの手順を記述してます。

環境

  • OS ubuntu20.10
  • ruby 2.7.2
  • rails 6.1.0
  • Postgresql 13.1 (dockerで構築)

deviseインストール

「Gemfile」に以下を追加します。

bundle installします。

インストールします。

ここでは、順に

  1. デフォルトのurlオプションの設定方法
  2. TOPページのルーティングの設定
  3. ログインした際になどに表示されるメッセージを表示するためのコード
  4. viewファイルをカスタマイズするためのコマンド

が記載されてます。

また、ここで以下の2つのファイルが作成されます。

view作成

デフォルトだと見ずらいので、あとでカスタマイズできるようにviewを作成しておきます。

以下のviewファイルが作成されます。

Model作成

モデルを作成します。

ここで、

  • devise用のmigrationファイル
  • Userモデルのファイル
  • routes.rbに「devise_for :users」を追加

が生成されます。

usersテーブル作成

テーブルを作成します。

ルーティング確認

「rails routes」でルーティングを確認すると設定されていることが確認できます。

ブラウザから http://プライベートIP :3000/users/sign_upにアクセスして以下の画面が表示されれば構築は完了です。

※CSSにMaterializeを使用しています

また「sign_up」のレイアウトは「app/views/devise/registrations」の
「new.html.erb」にあります。

試しにアカウントを登録してみます。

DBに、登録されてログインできることが確認できると思います。

※以下のコマンドを実行して、クエリを実行しても確認できると思います。

ログイン判定

ログインが完了しているかは、以下のコードで判定することが可能です。

日本語化

日本語化を行う場合は「Gemfile」に、まずは以下を追加します。

bundle installします。

config配下にある「application.rb」に「config.i18n.default_locale = :ja」を追加します。

以下のコマンドで、日本語用のファイルを生成します。

「config/locales」に「devise.views.ja.yml」が生成されるので、これを編集すれば日本語カスタマイズが可能です。

サーバーを再起動して、日本語が適応されていることが確認できます。