2011-04-14 6 views

답변

2

상황에 따라 몇 가지 방법이 있습니다.

첫째, 어떤 패턴과 일치하고 나는 이런 식으로 뭔가 할 수있는 다른 사람을 제외해야 할 것입니다 경우 : 당신은 단지 특정 패턴

validate :i_hate_beavis 

def i_hate_beavis 
    errors.add(:url, 'cannot be beavis') if self.url.match(/beavis/) 
end 

를 제외해야하는 경우

validates_format_of :url, :with => /swanky pattern/, :unless => :beavis 

def beavis 
    self.url.match(/beavis/) 
end 

또는 리소스 : http://apidock.com/rails/ActiveModel/Validations/ClassMethods/validate

+0

솔루션을 선택하고 채택했습니다. 훌륭하게 작동합니다. –

0

제프의 접근 방식을 취하여 다음을 구현했습니다.

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