Open1
[Ruby]dry-validation備忘録
リクエストパラメータを入力チェックする際は、以下のように記述する。
FormContract.new.call(params.permit!.to_h)
パラメータチェック
-
required
: 必須 -
optional
: 任意
値チェック
-
filled
: 必須 + 存在チェック + 型変換
型チェックなしにする場合は、型指定をしなければ型チェックされない。# 型チェックあり required(:end_date).filled(:date) # 型チェックなし required(:end_date).filled()
-
value
:必須+存在チェック+型一致 -
maybe
:型一致(nilの場合はチェックしない)
※string = blankの場合はチェックされる。 -
array
:オブジェクト配列チェック(配列サイズが0の場合はチェックされない)
多重配列の場合は次のようにネストさせることでチェックできる。optional(:groups).array(:hash) do required(:id).filled(:integer) required(:name).filled(:string) optional(:children).array(:hash) do required(:id).filled(:integer) optional(:name).value(:string) end end
-
each
:配列チェック# names: [1, 2, 3]などの場合 required(:names).filled { each(:integer) }