文系卒だけどいきなりRuby on Railsの勉強をはじめてみた #6 ユーザーのモデルを作成する


Railsチュートリアルについて調べてみると、「プログラミング経験者にとっても易しくはないレベル」とのコメントを見つけ、自分の理解度に対して安心した。
やはり1周目で理解し切るのは難しいようだ。

そんなわけで第6章をやっていく。

6.1 Userモデル

本段落ではユーザーの情報を格納するための場所をつくるっぽい。
そして、データ構造のことをモデルと呼ぶらしい。

rails generate controller hogeでコントローラーを作成できるみたいだ。

rails db:migrateというコマンドでマイグレーションという作業をする。
マイグレーションが何を指すかは調べてみてもよくわからない...。

とりあえず演習をしてみる。
rollbackをするといままでのものが台無しにされ、migrateをすると原状回復されたことだけは理解した。

そして、UserクラスはApplication Recordクラスを継承していることを知る。(演習 6.1.2)

そして、どうやらsaveをすることで、データベースにUserオブジェクトを保存できるようだ。
あとは、find_byで特定のレコードを検索したり、update_attributesでレコード情報を更新できたりするっぽい。

6.2 ユーザーを検証する

この章では、属性に入力規則をつける。
名前は空ではいけない、メアドはフォーマットに従う、など。

そして、テストは

  1. 有効なモデルのオブジェクトを作成
  2. その属性のうち1つを有効ではに属性に変更
  3. バリデーションで失敗するかどうか確認

という具合に進める。

テスト用のコードでは、setupというメソッドを利用するが、これによってここで定義したインスタンス変数はすべてのテスト内で使えるようになるらしい。

そして、valid?メソッドを使うと、オブジェクトの有効性をテストすることが可能。

演習は難しいので、答えをガン見する。

最も基本的なバリデーションは「存在性」らしい。
これは文字通り、属性が存在することを検証する。
(nullを許容しないってこと?)

存在性の次は、長さを検証する。
ここでいう長さとは、文字列の文字数のこととほぼ同義となる。

あとは、フォーマットや一意性を検証するという感じ。
正規表現に関してはなにも読めなかった。

6.3 セキュアなパスワードを追加する

この章ではパスワードを入力させ、「ハッシュ化」ということをするらしい。
ハッシュ化とは、ハッシュ関数を使って、入力されたデータをもとに戻せない(不可逆な)データにする処理のことらしい。

ハッシュ化をするおかげで、データベースに生のパスワードを保管しなくていいため、リスク回避的になることは理解した。

もちろんパスワードの最小文字数を決めたりすることもできる。

いろいろ設定したあと、rails consoleをしてユーザーを作成する。
開発環境用のデータベースをDB Browser for SQLiteで開き、usersテーブルの中身を見てみましょう、とさらっといわれるがどうやってやるのかまったくわからないので、飛ばす。

最後の演習ももうよくわからないので、答えだけみて飛ばす。