如果只填写另一个字段,如何验证字段?

时间:2010-02-27 00:40:44

标签: ruby-on-rails validation

如果在Ruby on Rails 2.3.5中填写了另一个字段,我将如何验证字段?

2 个答案:

答案 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? }