他にやるべきことが多くてペースが落ちてきました。
Ruby on Rails 学習計画(2019年47週目時点(11月第4週))
48週目(11/25〜)25時間
第5章レイアウトを作成する
第6章ユーザーのモデルを作成する★
第6章 ユーザーのモデルを作成する - Railsチュートリアル
6.1 Userモデル
Railsにはマイグレーション (Migration) という機能があります
データの定義をRubyで記述することができ、SQLのDDL (Data Definition Language) を新たに学ぶ必要がありません
つまりRailsは、データベースの細部をほぼ完全に隠蔽し、切り離してくれます
すごいね。
6.1.1 データベースの移行
RailsコンソールでUserクラスのオブジェクトを作っても、コンソールからexitするとそのオブジェクトはすぐに消えてしまいました。この節での目的は、簡単に消えることのないユーザーのモデルを構築することです。
前もデータベース使ってるものと思ってたけど勘違いか。。
コントローラ名には複数形を使い、モデル名には単数形を用いるという慣習を頭に入れておいてください。コントローラはUsersでモデルはUserです。
慣習として覚えておくべきことですね。
development.sqlite3ファイルを開くためのDB Browser for SQLiteという素晴らしいツールを使う
ダウンロードしました。
6.1.2 modelファイル
演習1-2
6.1.3 ユーザーオブジェクトを作成する
演習1-2
6.1.4 ユーザーオブジェクトを検索する
特になし
6.1.5 ユーザーオブジェクトを更新する
特になし
6.2 ユーザーを検証する
6.2.1 有効性を検証する
特になし
6.2.2 存在性を検証する
演習1-2
6.2.3 長さを検証する
コーディングミスでテスト通らず。
漏れてた x を追加して通った。
6.2.4 フォーマットを検証する
正規表現は複雑でなければわかる。
Rubular は知らなかったので使ってみた。
6.2.5 一意性を検証する
$ rails db:migrate
にてエラー。
別のターミナルで rails console --sandbox を動作させてたからの模様。
exit(quit) して rails db:migrate 再実施、正常に終了。
6.3 セキュアなパスワードを追加する
6.3.1 ハッシュ化されたパスワード
特になし
6.3.2 ユーザーがセキュアなパスワードを持っている
特になし
6.3.3 パスワードの最小文字数
演習1-2
rails console --sandbox を一旦終わらせてから実施しないと反映されなかった。
(false ではなく true が戻る)
sandbox に入り直したら false が戻るようになった。
6.3.4 ユーザーの作成と認証
6.4 最後に
heroku run rails db:migrate でエラー。
Cloud9 ではセッションが切れるごとに? heroku コマンドへのパスがリセットされるっぽい。
$ source <(curl -sL https://cdn.learnenough.com/heroku_install)
の再実施で成功したけど、heroku_install 見ると以下のコマンドで良さげ。
source $HOME/.profile > /dev/null
6.4.1 本章のまとめ
まとめ
ほぼソース書かなくて大丈夫なところがすごい。
今回のユーザなど、実装パターンが決まってるケースはテンプレート化されてる。
特殊な要件がなければ量産できますね。すごい。