Ruby on Railsチュートリアルで学んだ内容を個人的なメモとして簡単にまとめたものです
個人メモ
- Model
データモデルとして扱うデフォルトのデータ構造のこと - Active Record
データベースとやり取りするRailsのライブラリ
Active Recordは、データオブジェクトの作成/保存/検索のためのメソッドをもつ - マイグレーションコマンド
rails generate model モデル名 属性
マイグレーションファイルを変更すると後からデータベースの構造を変更することが可能 - マイグレーションの適用
rails db:migrate - モデルに関するテスト
rails test:models - 有効性(Validity)の検証
valid?メソッドでオブジェクトが有効かどうか確認できる - 存在性の検証
validatesメソッドでpresence: trueを追加することで存在性を検証した - フォーマットの検証
formatオプションを用いて、有効なメールアドレスにのみマッチする正規表現を組み立てることで検証した - 一意性の検証
- validatesメソッドでuniqueness: trueを追加
- データベースのレベルでも一意性を保証するため、emailのカラムにインデックスを追加
- インデックスの追加は検索の効率も向上させる
- callbackメソッド
オブジェクトが存在する間の特定の時点で処理を行うことができる - has_secure_password
セキュアなパスワードを実装できる- セキュアにハッシュ化したパスワードを、データベース内のpassword_digest属性に保存できるようになる
- 2つの仮想的な属性(passwordとpassword_confirmation)が使えるようになる。また、存在性と値が一致するかどうかのバリデーションも追加される
- authenticateメソッドが使えるようになる。引数の文字列がパスワードと一致するとUserオブジェクトを返し、一致しない場合はfalseを返す