Ruby学習13日目:DBへの登録と検証
まだキリが良くないですけど、そろそろ体力が尽きそうなので、途中経過。
何が悪かったって、最初のモデル生成が間違っていたってことで……orz
・IDと作成日、更新日は自動生成されるから、考える必要ない
・テーブル名間違っていた
・カラム一個入れ忘れていた
→なので、マイグレーションかけているんだけど、シンタックスエラー言われていているのが今ココ!
ですが、DBに保存まではできました。
※ユーザー登録画面
Viewはこんな感じ。
usersというテーブルに対して登録するんで、routeで以下の定義。
※routes.rb
resourcesにusers(DB名は複数形になる)を指定してあげると、自分で書かなくてもrouteを定義してくれる。
コマンド打つと分かる。
※コマンドラインのキャプチャ
usersに対してformをPOSTする先のusers#createが定義されているのが確認できます。
なので、Controllerクラスにcreateというメソッドを作ると、そこで新規作成される。
そしてmodelの方では、POSTされた値を検証する。
※usersのmodel
コメントで「検証ルール定義」って書いたブロックのところが、各カラムがどんな値であるべきかを大まかに定義できる。
外れていればエラーとして戻され、Viewの方で受け取ってエラーメッセージをループで回すことで表示できる。
そしてcreateで投げてきたので、自動的にDB保存まで流れるけど、その時にコールバック関数を登録することで、dbの登録前にデータをいじることが可能。
ここでやっているのは、url_txtというカラムに対し、メールアドレスをMD5でハッシュ値に変更して登録しようとしている。
……というところで、url_txtというカラムをDBに定義しそびれていて、マイグレーションかけているのが今の状況。
明日の朝はここから再開。
DBを整理したら、DBへの登録、登録した値を使ってログイン(selectした結果を受けての画面遷移)を作ります。