我需要在before_validation模型过滤器上添加验证。我怎么能这样做?
提前致谢
- 编辑 我没有正确表达自己。我需要在回调中添加验证:
validate :check_length
def check_length
if my_conditional
validates_length_of :name, :minimum => 5
else
validates_length_of :name, :minimum => 7
end
答案 0 :(得分:8)
您必须创建一个方法并从回调中调用它
before_validation :run_this_check
def run_this_check
##run your validation
errors.add(:key, "This is your error message")
end
或验证是否处理属性(或字段)
def run_this_check
errors.add_to_base('error message')
end
答案 1 :(得分:0)
尝试使用
class X < ActiveRecord
validates_length_of :name, :minimum => 5 if my_condition
validates_length_of :name, :minimum => 7 unless my_condition
end
条件是什么?