Как проверить поле, только если заполнено другое? - PullRequest
4 голосов
/ 27 февраля 2010

Как бы я проверил поле, только если в Ruby on Rails 2.3.5 было заполнено другое поле?

Ответы [ 2 ]

7 голосов
/ 27 февраля 2010
class Model < ActiveRecord::Base

  validates_presence_of :address, :if => :city?

end

:address и :city оба являются атрибутами Model.

6 голосов
/ 27 февраля 2010

validates_presence_of принимает атрибут 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.

Мне пришлось использовать процедуру, поскольку я хотел убедиться, что определенный параметр был заполнен перед проверкой:

  validates_presence_of :bar, :if => Proc.new { |foo| !foo.age.blank? }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...