如何验证是否存在这些值之一,但不能同时存在?
validates_presence_of :client_id, message: 'Please enter a value'
validates_presence_of :agency_id, message: 'Please enter a value'
Run Code Online (Sandbox Code Playgroud)
我查看了rails指南,我认为我需要使用条件验证,但仍然有些困难。
尝试这个
validates :client_id, presence: true, unless: :agency_id
validates :agency_id, presence: true, unless: :client_id
Run Code Online (Sandbox Code Playgroud)
如果要包含错误消息,可以执行
validates :client_id, presence: { message: "Must have a value" }, unless: :agency_id
Run Code Online (Sandbox Code Playgroud)
如果你使用unless 语法,你会得到两个错误:一个是client_id,一个是agent_id,如果两者都是Nil。
如果您只想要一个错误,则需要一个自定义方法。 指南:ActiveRecord 验证
validate :client_or_agency
def client_or_agency
errors.add(:client_id, "Either Client or Agency needs a value") unless client_id.present? || agency_id.present?
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1325 次 |
| 最近记录: |