1

我需要在 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
4

2 回答 2

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
于 2012-08-29T15:12:40.907 回答
0

尝试使用

class X < ActiveRecord

  validates_length_of   :name, :minimum => 5 if my_condition
  validates_length_of   :name, :minimum => 7 unless my_condition

end

什么条件?

于 2012-08-30T02:56:46.010 回答