スポンサーリンク
30DAYSトライアル4th(Rails)DAY17の課題は「Progate Rails コース(5章まで)」です。
DAY17での学習内容は以下になります。
DAY17学習内容
- 投稿を制限する
- 投稿にバリデーションを追加(チェック機能)
- 新規投稿、削除昨日にもバリデーションを追加
バリデーションは不正な値が登録されないようにしたり、ユーザービリティを高めるためには必須となる機能なので、しっかりと学習していきます。
スポンサーリンク
バリデーション(データベース更新チェック)
以下の構文でモデルにバリデーションを追加することが可能
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# バリデーションはモデルに定義する class モデル名 < ApplicaationRecord validates :検証するカラム名, {検証する内容} # 例) 空の制限 validates :検証するカラム名, {presence: true} # 例) 文字数の制限 validates :カラム名, {length: {maximum: 文字数}} # 例) 検証する内容はハッシュとなっていて、1行に複数指定できる validates :カラム名, {presence: true} end |
別のアクションを経由せずに、直接ビューを表示する:renderメソッド
redirect_toメソッドとは違い、そのアクション内で定義した@変数を転送先のビューでそのまま使用することができる。
1 |
render("フォルダ名/ファイル名") |
フラッシュ
ページに1度だけメッセージを表示できる特殊な変数
1 2 |
# アクションでflash変数に値を設定しておけば、ビューで使用できる flash[:notice] = "表示したい文字列" |
まとめ
バリデーションはモデル(テーブル)に指定するということはデータベースのNOT NULL制約やバイト数を指定しているようなイメージになるんですかね。
他にもrenderメソッドやflash変数などについても「こう書いたらこうなる」っていうだけでなく、中身がどうなっているかを理解しないといけないなと思います。
構文はどうでもいいですが、中の仕組みを理解しないと応用は聞きませんからね。
幸い、DAY18、DAY19と道場コースが2日間とられているので、1日目はこのあたりを図解するなりしてもっと理解を深めて置く必要がありますね。
スポンサーリンク