如果在Ruby on Rails 2.3.5中填写了另一个字段,我将如何验证字段?
答案 0 :(得分:7)
class Model < ActiveRecord::Base
validates_presence_of :address, :if => :city?
end
:address
和:city
都是Model
的属性。
答案 1 :(得分:5)
validates_presence_of
接受一个if
属性,该属性根据documentation取三个内容中的一个:字符串,方法或过程。
if - Specifies a method, proc or string to call to determine if the validation
should occur (e.g. :if => :allow_validation, or
:if => Proc.new { |user| user.signup_step > 2 }).
The method, proc or string should return or evaluate to a true or false value.
我最终需要使用proc,因为我想确保在验证之前填写某个参数:
validates_presence_of :bar, :if => Proc.new { |foo| !foo.age.blank? }