Как я могу проверить поле только в том случае, если другой был заполнен? Ruby on Rails 2.3.5?Как проверить поле, только если другое заполнено?
ответ
class Model < ActiveRecord::Base
validates_presence_of :address, :if => :city?
end
:address
и :city
являются атрибутами Model
.
validates_presence_of
принимает атрибут if
, который принимает одну из трех вещей, в соответствии с documentation: строка, метод или proc.
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? }
Вместо того, чтобы создавать и отвечать, я предлагаю отредактировать исходный вопрос. –
Спасибо! Это то, что я искал! – JGutierrezC
Это работает! Спасибо. Мне пришлось указать proc. См. Мой ответ за три разные вещи, которые принимает атрибут 'if'. –