Railsのバリデーションで少しハマった。
はじめに
Railsのバリデーションで少しハマったのでメモ。
今回ハマったのは、入力する数字の範囲でバリデーションをかけたいとき。
内容
例えばx座標で、xには0から400まで値を持たせたい。
- ハマった方法
validates :x, :length => { :maximum => 400 }
- 解決方法
validates :x, :inclusion => { :in => 0..400 }
ハマった方法のやり方だと、400桁までというバリデーションになってしまう。
テストコード
こんな感じでテストしてた
@hoge.x = 401 expect(@hoge.save).to eq(false) @hoge.x = -1 expect(@hoge.save).to eq(false) @hoge.x = 400 expect(@hoge.save).to eq(true)
Rails3レシピブック 190の技
posted with amazlet at 13.05.09
高橋 征義 松田 明 諸橋 恭介
ソフトバンククリエイティブ
売り上げランキング: 71,799
ソフトバンククリエイティブ
売り上げランキング: 71,799