テックキャンプ39日目

今年は6/26からツールドフランスが始まります!
ニコニコ生放送で第一ステージ(6/26)と山岳ステージ(7/4)見るよ(´ω`*)

ツールドフランスというのは簡単にいうとデカい自転車のレースですね。
ヨーロッパの風情ある町・広大な平原・急勾配の山道を走るので僕はほぼ観光みたいな感じで見てます。歴史的建造物の紹介や地元の人たちの個性的な応援もおもしろい。
もちろんレースが動く瞬間や、ゴール前のスプリント、下り坂のスピード感はテンション上がりますよ!長時間のレースなのでそれ以外はまったりですけどね。

ちなみに僕は自転車に詳しいわけではなく、有力選手もそんなにわかりません。そんなんでも楽しめますw
気が向いたら気分転換にチラ見してください(´ω`*)

39日目の勉強内容

勉強の方はrails routesでHTTPメソッドやパスの確認に慣れてきた感じ。
やっぱ繰り返し実装して経験するのが大事なんですね。

バリデーション

テーブルにデータを保存するときに制約を設けることをバリデーションという。モデルに記述する。
下記はnameの値が空白だと登録できませんよ、という制約。
validates :name, presence: true

deviseには最初からメールアドレスやパスワードのバリデーションが設定されているが、
自分で追加したnameカラムには新たにバリデーションを設定する必要がある。

ところで、migrationファイルにも「null: false」でNOTNULL制約を記述しているんだけど、バリデーションとの違いがあるみたい。

  • migrationファイルの制約はデータベースの制約。また、空文字” “は保存できてしまう。
  • バリデーションはrailsの制約。Webからのデータ入力制限。これだけでは直接テーブルの書き換えを防げない。

なのでmigrationファイルとバリデーション両方で制約を設定する必要がある(`・ω・´)
またバリデーションを設定すればerrors.fullmessagesでエラー内容を取り出せる。(テストで使用した!)

コメント

タイトルとURLをコピーしました