在调用另一个Ruby文件中的某个方法后,我试图在ActiveRecord上调用验证。我是否可以通过某种方式将其与ActiveRecord的验证方案联系起来,即:
validate :cars_have_wheels?, on: after_cache_reset
注意:cars_have_wheels?
是位于ActiveRecord对象中的方法,after_cache_reset
是另一个文件中的方法。
谢谢!
答案 0 :(得分:1)
查看此link(Ruby on Rails指南):
5条件验证 有时仅在满足给定谓词时验证对象才有意义。您可以使用:if和:unless选项,可以使用符号,字符串,Proc或数组。如果要指定何时进行验证,可以使用:if选项。如果要指定何时不应进行验证,则可以使用:unless选项。
5.1使用符号:if和:除非 您可以将:if和:unless选项与对应于将在验证发生之前调用的方法名称对应的符号相关联。这是最常用的选项。
class Order < ActiveRecord::Base
validates :card_number, presence: true, if: :paid_with_card?
def paid_with_card?
payment_type == "card"
end
end