Hiroto-Ishida  2020/11/27更新

Ruby on Railsの勉強〜モデルの検証1〜



・データベースにデータが送られてくるときそぐわないデータは受け入れないといった制約をすることはデータの値の「内容の範囲」をデータベースで定義することで予防できる。

NOT NULL制約(データが空だったらデータを受け付けない)

ソースコード db/migrate/xxxxxxxxxxxxxx_create_tasks.rb

class CreateTasks < ActiveRecord::Migration[6.0]

def change

    create_table :tasks do |t|

        t.string :name, null: false

        t.text :description

.....

他にも、文字列のカラムの長さを指定する データ型じゃないと受け付けないなどある。

しかし、これだけでは制約外ならだめ!と決まったエラーメッセージしかでなくてユーザーがなんでエラーになっているかわからないなどWebアプリケーションの機能としては物足りない。

そこで「モデルの検証」を行う。

モデルの検証はRubyのコードでデータの内容の正しさをチェックする検証の仕組みが用意されている。

これを使うと非常に自由度の高いチェックを行った上でユーザーにわかりやすいエラーメッセージを送ることもできる。

モデルの検証さえしっかり行っていればデータベースの定義でデータの範囲をあまり制限をしなくてもデータの情報はそこそこ正しい状態で保たれる。

とはいえ、モデルの検証が実行できないケースもあるのでデータベース側からの制限も確実に行っていた方が良い。

https://pikawaka.com/rails/validation

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