Rails - 如何在回调时添加验证

时间:2012-08-29 15:10:41

标签: ruby-on-rails ruby ruby-on-rails-3

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

2 个答案:

答案 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

条件是什么?