验证关联的布尔值 True
Validate Boolean True of an Association
我有一个模型 Assignment 其中 belongs_to 模型 Device
在创建分配行之前,我需要验证相应设备的布尔值是否设置为真,否则创建会失败。如何做到这一点?
class Assignment < ...
validate :check_device_boolean_value
def check_device_boolean_value
errors.add(:your_boolean_value, "must to boolean") unless devise.your_boolean_value
end
您可以使用 Rails custom validation 根据设备的 boolean_attribute
.
验证您的 Assignment
模型
在您的 Assignment
模型中,添加此自定义验证器:
validate :true_device_attribute
然后,在同一个模型中定义验证器方法:
def true_device_attribute
unless device.boolean_attribute
errors.add(:boolean_attribute, "Device's boolean_attribute Must be True")
end
end
默认情况下,每次您调用 valid?
.
时都会进行此类验证 运行
您还可以控制何时 运行 您的自定义验证器。如果您只想在 creating
和 assignment
时执行验证,那么您可以将 :on :create
选项传递给 validate
方法,如下所示:
validate :true_device_attribute, on: :create
然后验证将仅在您尝试 create
Assignment
记录时 运行。不适用于 update
。
默认情况下,它适用于 create
和 update
。
查看 Rails Official Documentation for Validations Custom Methods 以获得更多见解。
我有一个模型 Assignment 其中 belongs_to 模型 Device
在创建分配行之前,我需要验证相应设备的布尔值是否设置为真,否则创建会失败。如何做到这一点?
class Assignment < ...
validate :check_device_boolean_value
def check_device_boolean_value
errors.add(:your_boolean_value, "must to boolean") unless devise.your_boolean_value
end
您可以使用 Rails custom validation 根据设备的 boolean_attribute
.
Assignment
模型
在您的 Assignment
模型中,添加此自定义验证器:
validate :true_device_attribute
然后,在同一个模型中定义验证器方法:
def true_device_attribute
unless device.boolean_attribute
errors.add(:boolean_attribute, "Device's boolean_attribute Must be True")
end
end
默认情况下,每次您调用 valid?
.
您还可以控制何时 运行 您的自定义验证器。如果您只想在 creating
和 assignment
时执行验证,那么您可以将 :on :create
选项传递给 validate
方法,如下所示:
validate :true_device_attribute, on: :create
然后验证将仅在您尝试 create
Assignment
记录时 运行。不适用于 update
。
默认情况下,它适用于 create
和 update
。
查看 Rails Official Documentation for Validations Custom Methods 以获得更多见解。