【Rails#3】バリデーションを付けよう

【Rails#3】バリデーションを付けよう

コジマです。

【Rails】ユーザー登録フォームを作ろう
の続きです。

ユーザー登録フォームを作成しましたが、バリデーションないとやっぱ嫌だなぁってことで
今回はバリデーションをつけていこうと思います。
ログインまでの道のりは長いですねぇ。こだわりだすとキリがなくなりますね。
そしてタイトルに番号を振ることにしました。わかりやすくなったかと思います。

https://serene-brook-78971.herokuapp.com/
ここまでの成果をherokuにも上げてみました。
今後ブログを更新するタイミングでherokuもアップデートしていけたらと思っています。

バリデーションを付けるので、だいたいこんな感じかなという感覚でmodels/user.rbを作っていきます。

正規表現も少し押さえておきたかったので、Progateで学んだよりも少しはみ出た内容になっています。
rubyだと/\A〜〜\z/で終わるんですねぇ。
私は/^〜〜$/という形しかしらなかったので少し時間を食ってしまいました。
でもまぁ、全部使い方覚えるより、ある程度テンプレを引っ張り出せるようにしておくのが正規表現の使い方としては効率いいのではないでしょうか。書けるより読めた方がいいと思ってます。
メールアドレスの正規表現は簡易的なものですが、ざっくり◯◯@**.comなんかを通してくれます。
半角英数字を\wだけで表現できるらしいのですが、私は[0-9a-zA-Z]の方がぱっと見で分かりやすくて好きです。

バリデーションをつけたら、エラー処理を加えていきます。
前回のものから少し変更しています。

createアクションの中でsaveの実行結果によって処理を分けます。
成功すればユーザー一覧画面に、エラーがあればもう一度ユーザー登録画面に戻ります。

signupアクションでUser.newすることで
こちらでUserクラスから生成されたインスタンスを操作することができます。
また、renderはredirect_toと違ってアクションの処理を行わないので、renderを使用すれば
以下の画像のように入力値を保存しておくことができます。


エラーメッセージは今の所errors.full_messages.eachのデフォルトメッセージを使用しています。
申し訳程度に赤文字太文字していますw

あまり大したことやってないですが、今回はここまで。
そろそろ画面とソースを綺麗にしていきたいですね。
また進捗出たら更新します。

以上、コジマでした。


Ruby on Railsカテゴリの最新記事