20201122_アウトプット(ユーザー管理機能の実装)
今日行ったこと 12時間半
ユーザー管理機能の実装(テストコードの前まで)
新しい発見
deviseのpermitについて。デフォルトで作られる
emai
とpassword
はキーとして不要なことを理解。デフォルトで
email
とencrypted_password
が作成されるが、その2つについて、どこまでデフォルトでバリデーションをしてくれているのか疑問だった。(元々バリデーションがかかっているのなら、プラスで行う必要がないため。)それがメンターさんのおかげですっきりした!(以下3箇所)
(1)アプリ内のファイルに書いてある👉devise.rb(@が含まれる、6字以上)
(2)アプリ内のファイルに書いてある👉models/モデル名.rb(存在する)
(3)GitHubに書いてある👉https://github.com/heartcombo/devise(2回確認)(3)の詳細として、name属性の「password」と「password_confirmation」の2つが一致しているかチェックされ、それがあっていると暗号化されて「encrypted_password」となり、データベースに保存されることを理解。(だからデータベースのencrypted_passwordは暗号化されてぐちゃぐちゃなのか!)
VSコードの拡張機能で、HTMLのようなエミット機能が実装できることを知った。(ありがとうございます) qiita.com
validates_format_of
というモデルに書くバリデーションを知った。(メッセージ表示させるところまでバリデーションとする) railsdoc.com閉じタグ注意!
%>
マイグレーションファイルとモデルで言い方が違うことを理解。(一緒だと思ってた) 【空はNG】
presence: true
null: false
【一意性】
uniquness: true
unique: truedevise
を導入している時「登録していないユーザーをログインページに促す方法」は2つある。
(before_action :authenticate_user!, except: :index
か、before_action :move_to_index, except: :index
+プライベートメソッドでunless user_signed_in?
を使ってredirect_to action: :index
へ)上記の前者について、全体に関わることはAppコントローラーだけど、そうでない場合には、itemコントローラーに書くでOKと理解。
感想
思いの外、正規表現(バリデーション)で詰まった。
今日はたくさんメンターさんに聞いて助けてもらった。
その分、細かいところでわかっていなかったことを学べたのは大きかった。