MENU

30DAYSトライアル4th(Rails)のまとめ【DAY17】

30DAYSトライアル4th(Rails)DAY17の課題は「Progate Rails コース(5章まで)」です。

DAY17での学習内容は以下になります。

DAY17学習内容
  • 投稿を制限する
  • 投稿にバリデーションを追加(チェック機能)
  • 新規投稿、削除昨日にもバリデーションを追加

バリデーションは不正な値が登録されないようにしたり、ユーザービリティを高めるためには必須となる機能なので、しっかりと学習していきます。

目次

目次

バリデーション(データベース更新チェック)

以下の構文でモデルにバリデーションを追加することが可能

# バリデーションはモデルに定義する
class モデル名 < ApplicaationRecord
  validates :検証するカラム名, {検証する内容}

  # 例) 空の制限
  validates :検証するカラム名, {presence: true}

  # 例) 文字数の制限
  validates :カラム名, {length: {maximum: 文字数}}

  # 例) 検証する内容はハッシュとなっていて、1行に複数指定できる
  validates :カラム名, {presence: true}
end

別のアクションを経由せずに、直接ビューを表示する:renderメソッド

redirect_toメソッドとは違い、そのアクション内で定義した@変数を転送先のビューでそのまま使用することができる。

render("フォルダ名/ファイル名")

フラッシュ

ページに1度だけメッセージを表示できる特殊な変数

# アクションでflash変数に値を設定しておけば、ビューで使用できる
flash[:notice] = "表示したい文字列"

まとめ

バリデーションはモデル(テーブル)に指定するということはデータベースのNOT NULL制約やバイト数を指定しているようなイメージになるんですかね。

他にもrenderメソッドやflash変数などについても「こう書いたらこうなる」っていうだけでなく、中身がどうなっているかを理解しないといけないなと思います。

構文はどうでもいいですが、中の仕組みを理解しないと応用は聞きませんからね。

幸い、DAY18、DAY19と道場コースが2日間とられているので、1日目はこのあたりを図解するなりしてもっと理解を深めて置く必要がありますね。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

ソフトウェア会社(SIer)で10年以上勤務のシステムエンジニア|ポケットWiFi使用歴2年以上|ポケットWiFi+αで快適でお得なインターネット環境を構築するための情報を発信|その他、IT情報やWebサービス、アプリ、ガジェットなどの情報を発信|自分と他の人のカバンの中身を紹介するメディア「カバンの中身ラボ(https://kaban-no-nakami-labo.com/)」も運営しています。
ポケットWiFi選びに迷ったらTwitter、お問合せフォームからご連絡ください。

コメント

コメント一覧 (1件)

コメントする

目次