このオブジェクトに入る数値が3で割り切れることを確認したいのですが、無効な入力を防ぐためにモデルで検証を使用するにはどうすればよいですか?
ありがとう!
これを試して:
# your_model.rb
validate :only_valid_numbers
private
def only_valid_numbers
if (self.number % 3) != 0
self.errors[:base] << "Number must be divisible by 3!"
end
end
これは 0 になることに注意してください0 % 3
。それを許可したくない場合は、if ステートメントを次のように変更します。
if self.number != 0 and ...etc...
次のように、独自の単純な検証メソッドを作成できます。
validate :divisible_by_three
def divisible_by_three
unless attribute%3 == 0
self.errors.add(:attribute, "is not divisible by 3")
end
end
Railsメソッドに組み込まれているとは思わないので、これがおそらく最良の解決策です。
トム