devise4

やった事

  • ユーザーページにページネーション
  • 日本語化

日本語化

devise-i18n/ja.yml at master · tigrish/devise-i18n
【Rails】i18nでdeviseのビューを日本語にする

  • Gemfileにgem 'devise-i18n’を記述しインストール。

  • rails g devise:viewsで作成したものを削除。

rails g devise:i18n:views -v registrations

で作成し直した。

  • config/application.rbに下記を記述。
config.i18n.default_locale = :ja 
  • deviseのviewはモデル名とカラム名(下記の部分)だけ日本語化
    (Deviseのviewはgem 'devise-i18n’のおかげで全部日本語化されているのでモデルの部分だけで良い)
<div class="field">
     <%= f.label :name %><br />
     <%= f.text_field :name, autofocus: true, autocomplete: "name" %>
</div>
  • usersのviewは全部日本語化した

<モデル名とカラム名の日本語化の方法>

config/locales/translation_ja.ymlに追記して日本語化した。
他にもやり方がある様だけど、このやり方が一般的の様。
第16回: Devise によるユーザー認証機能の日本語化(2) - Ruby on Rails 3.0 日記 - Ruby on Rails with OIAX

パスワード再設定メールの設定

その他

app/views/users/show.html.erb

<% if current_user == @user %>

current_userという今ログインしているユーザーを確認出来るhelperがある!

Devise復習

  • confirmableは、確認のためのメールを送信し、サインイン時にアカウントがすでに確認されているかどうかを確認する機能。

  • Routes.rbにルートパスを設定して、サインインやログアウト後のリダイレクト先にしたが、after_sign_in_path_for after_sign_out_path_for メソッドで細かく設定する事もできるみたい。

マイグレーションファイルの書き方

【Rails】 マイグレーションファイルを徹底解説! | Pikawaka

db/migrate/20221003041716_devise_create_users.rbの下記の記述について

add_index :email,                unique: true
add_index :users, :reset_password_token

カラムに一意性規約のバリデーションをかけるときにはインデックスを設定しておくのが一般的です。
なぜなら一意(すでに使われていないか)を調べるにはカラムの値を検索する必要があるからです。

との事だった!覚えておきたい!