【发布时间】:2012-01-16 14:54:25
【问题描述】:
我正在使用 Rails v2.3
如果我有一个模型:
class car < ActiveRecord::Base
validate :method_1, :method_2, :method_3
...
# custom validation methods
def method_1
...
end
def method_2
...
end
def method_3
...
end
end
如您在上面看到的,我有 3 种自定义验证方法,我将它们用于模型验证。
如果我在这个模型类中有另一个方法来保存模型的新实例,如下所示:
# "flag" here is NOT a DB based attribute
def save_special_car flag
new_car=Car.new(...)
new_car.save #how to skip validation method_2 if flag==true
end
我想跳过method_2在这个特殊的新车保存方法中的验证,如何跳过某些验证方法?
【问题讨论】:
-
您的“特种车”是否有任何可以将其与非特种车区分开来的属性?这样就很简单了。
-
您查看过conditional validation 文档吗?
-
嗨,我更新了我的帖子以了解保存特殊汽车的方法。基本上,我有一个“标志”参数传递给该方法,如果“标志”为真,我想跳过方法_2的验证
-
@Dave,我已经讨论过了。但是我想要实现的是方法级别,我想知道是否有可能在方法级别上做到这一点,以及如何做到。
标签: ruby-on-rails ruby-on-rails-3 ruby-on-rails-3.1