2009-11-19 105 views
1

我想在一个函数来验证属性,这样Ruby on Rails的ActiveRecord的验证

class User < ActiveRecord::Base 

    validate :check_name(:name) 

    def check_name(name) 
    ... if name is invalid ... 
     self.errors.add(:name, 'Name is invalid') 
    end 

end 

能否请你写出正确的代码? 请解释功能为什么... THX!

回答

6
class User < ActiveRecord::Base 

    validate :check_name 

    def check_name 
    if name # is invalid ... 
     self.errors.add(:name, 'Name is invalid') 
    end 
    end 

end 

您可以使用validate宏但方法不能接受参数。 您需要从方法内部获取属性值,然后对其进行验证。

更换

if name # is invalid ... 

用自己的验证逻辑。