第6章の実績
第6章 ユーザーのモデルを作成する を実施しました!
実施時間: 3時間
学べたこと
- モデルの生成方法
「rails generate model User name:string email:string」とするだけで、”User”という”name”文字列と”email”文字列の2つの属性を持ったモデルと関連クラス(DBマイグレーション用ファイルやテストテンプレート)を作成することができます。そして「rails db:migrate」を実行することで、DBのテーブル作成までも簡単にできてしまいます。 - Railsコンソールのサンドボックス実行
「rails console –sandbox」とすることで、Railsコンソールでのモデル変更などによるDB影響を、終了時に元に戻して(rollback)くれます。
自動生成コマンド:「rails generate integration_test site_layout」
統合テスト実行コマンド:「rails test:integration」 - has_secure_password
このメソッドをモデルに持たせるだけで、以下の機能を使えるようになる。(ただし、 モデルにpassword_digest
という属性を持っている事、 bcryptなどのハッシュ関数が使用できる事などの条件があります)- ハッシュ化したパスワードを、DB内の
password_digest
という属性に保存できるようになる。 - 2つのペアの仮想的な属性 (
password
とpassword_confirmation
) が使えるようになる。ここで言う仮想的とは、モデル上は存在するがDBには存在しないという事を表す。 - 存在性と値が一致するかどうかのバリデーションも追加される。
authenticate
メソッドが使えるようになる (引数の文字列がパスワードと一致するとUserオブジェクトを、間違っているとfalse
を返すメソッド) 。
- ハッシュ化したパスワードを、DB内の
独自にやったこと
「rails test:models」が動かない
「rails db:migrate RAILS_ENV=test」を実施する必要がある模様。
参考
環境
- ruby: 2.3.3
- ruby on rails: 5.1.4
- OS: Windows 10 (64bit)
- IDE: IntelliJ ULTIMATE 2018.1
- リポジトリ:GitHub
リンク
【スポンサードリンク】
![](http://image.moshimo.com/af-img/0330/000000015158.jpg)
![](http://image.moshimo.com/af-img/0288/000000021425.jpg)