我有以下验证:
class User < ActiveRecord::Base
...
validates :email, uniqueness: { message: "Email already associated with an account" }
...
end
我的类User
作为一个名为active
的布尔属性,我想使用条件将其合并到验证逻辑中。如果条件user.active? == false
,抛出自定义验证错误消息的最佳方法是什么?
答案 0 :(得分:2)
我会尝试添加以下两个验证:
Z
答案 1 :(得分:1)
验证可以表示为实例方法。例如,我有一个Student
模型,其中包含first_name
和last_name
属性。我想引入一个验证,当其中一个或两个名称都为空时,它将抛出自定义错误。我可以通过以下方式做到这一点:
在validate
中调用自定义方法:
class Student < ActiveRecord::Base
...
validate :full_name_validation, on: :create
...
end
并添加我的full_name_validation
方法:
def full_name_validation
if first_name.blank? && last_name.blank?
errors.add(:full_name, 'Full name is required')
elsif first_name.blank?
errors.add(:full_name, 'First name is required')
else
errors.add(:full_name, 'Last name is required')
end
end