是否可以将validates_exclusion_of
用于正则表达式?Rails 3 URL验证不包括某些模式
这将确保匹配这些特定模式的URL无法验证,也无法插入到数据库中。
什么是最好的方法来编码?
是否可以将validates_exclusion_of
用于正则表达式?Rails 3 URL验证不包括某些模式
这将确保匹配这些特定模式的URL无法验证,也无法插入到数据库中。
什么是最好的方法来编码?
有几种方法我可以做,取决于情况。
首先,如果我将不得不满足一些模式,然后排除其他人我可能会做这样的事情:
validates_format_of :url, :with => /swanky pattern/, :unless => :beavis
def beavis
self.url.match(/beavis/)
end
或者,如果你只需要排除某些模式
validate :i_hate_beavis
def i_hate_beavis
errors.add(:url, 'cannot be beavis') if self.url.match(/beavis/)
end
资源:http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validate
我采取了杰夫的方法,并执行以下操作:
validate :url_is_acceptable
URL_BLACKLIST = [
/http:\/\/www.some-website.com\/.*/,
/http:\/\/www.other-website.com\/.*/
]
def url_is_acceptable
URL_BLACKLIST.each do |blacklisted_url|
if self.url =~ blacklisted_url
errors.add(:not_acceptable, "is not acceptable")
return
end
end
end
我选择了您的解决方案并对其进行了调整。很棒。 – 2011-04-14 12:11:21