20201122_アウトプット(ユーザー管理機能の実装)

アプトプット画像

今日行ったこと 12時間半

  • ユーザー管理機能の実装(テストコードの前まで)

    新しい発見

  • deviseのpermitについて。デフォルトで作られるemaipasswordはキーとして不要なことを理解。

  • デフォルトでemailencrypted_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

  • プレフィックスにダブルクォーテーションは不要。(URLがそのままプレフィックス=文字列になってしまうよ!)

  • 閉じタグ注意!%>

  • マイグレーションファイルとモデルで言い方が違うことを理解。(一緒だと思ってた) 【空はNG】
    presence: true
    null: false
    【一意性】
    uniquness: true
    unique: true

  • deviseを導入している時「登録していないユーザーをログインページに促す方法」は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と理解。



感想

  • 思いの外、正規表現(バリデーション)で詰まった。

  • 今日はたくさんメンターさんに聞いて助けてもらった。

  • その分、細かいところでわかっていなかったことを学べたのは大きかった。



これから理解したいこと(覚書用)

  • Formオブジェクト(モデルの存在しないデータを更新)


  • エラー解決

  • カラムの追加方法、ロールバック

  • 環境変数(OSの知識)

  • 環境構築、バージョン対応

  • GitHub(他のアプリケーションと連携・自分に取り入れること)

  • Herokuのデプロイ方法 👉11/15・16学習 50%進む

  • README(DB設計だけでなく、全体について取扱説明書としてどんな風に書くと良いのか)

  • リファクタリング

  • データベースをインポート、エクスポート

  • Docker

  • gimei(Gem)