Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ruby-on-rails/59.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ruby on rails 如何仅在填写另一个字段时验证该字段?_Ruby On Rails_Validation - Fatal编程技术网

Ruby on rails 如何仅在填写另一个字段时验证该字段?

Ruby on rails 如何仅在填写另一个字段时验证该字段?,ruby-on-rails,validation,Ruby On Rails,Validation,只有在RubyonRails 2.3.5中填写了另一个字段时,我如何验证该字段?类模型:城市? 终止 :address和:city都是模型的属性验证的存在性\u接受一个if属性,该属性根据以下三种情况之一:字符串、方法或过程 if - Specifies a method, proc or string to call to determine if the validation should occur (e.g. :if => :allow_validation, or :if =&

只有在RubyonRails 2.3.5中填写了另一个字段时,我如何验证该字段?

类模型class Model < ActiveRecord::Base

  validates_presence_of :address, :if => :city?

end
验证是否存在:地址,:if=>:城市? 终止
:address
:city
都是
模型的属性

验证
的存在性\u接受一个
if
属性,该属性根据以下三种情况之一:字符串、方法或过程

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

真管用!非常感谢。我最终需要指定一个进程。查看我的答案,了解
属性接受的三种不同内容。我建议编辑您的原始问题,而不是创建和回答。谢谢!这就是我要找的!