0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

【Rails】数値のvalidationで不正なカンマや全角をチェックする方法

Last updated at Posted at 2020-08-04

やりたいこと

カラムを更新する時、数値(整数と少数)のみ許可したい。
たとえば、以下のようなUserモデルを作成したとする。

$ rails g model User name:string age:integer height: float
カラム
id integer
name string
age integer
height float

この時、浮動小数点型のheightカラムに不正な数値が入らないようにする。
(例)
カンマが不正 >> 160..1
全角数字 >> 160.3
文字列 >> hoge

実装方法

Userモデルで以下のようにvalidationを記述する。
デフォルトでは、整数と浮動小数点にマッチし、nil値は許容されない。

user.rb
class User < ApplicationRecord
  # デフォルト
  validates :height, numericality: true
  # nil値を許可するオプションをつけた場合
  validates :height, numericality: { allow_nil: true }
end
terminal
user = User.new(name: 'hoge', age: 26, height: 162..1)
user.valid?
user.erros.full_message
# => height is not a number

参考

様々なオプションがあるのでRailsガイドを参照する。
Active Record バリデーション - Railsガイド

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?