validates_exclusion_of
을 정규식과 함께 사용할 수 있습니까?레일스 3 일부 패턴을 제외하는 URL 유효성 확인
이렇게하면 특정 패턴과 일치하는 URL의 유효성을 검사하거나 db에 삽입 할 수 없습니다.
코드를 작성하는 가장 좋은 방법은 무엇입니까?
validates_exclusion_of
을 정규식과 함께 사용할 수 있습니까?레일스 3 일부 패턴을 제외하는 URL 유효성 확인
이렇게하면 특정 패턴과 일치하는 URL의 유효성을 검사하거나 db에 삽입 할 수 없습니다.
코드를 작성하는 가장 좋은 방법은 무엇입니까?
상황에 따라 몇 가지 방법이 있습니다.
첫째, 어떤 패턴과 일치하고 나는 이런 식으로 뭔가 할 수있는 다른 사람을 제외해야 할 것입니다 경우 : 당신은 단지 특정 패턴
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
제프의 접근 방식을 취하여 다음을 구현했습니다.
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
솔루션을 선택하고 채택했습니다. 훌륭하게 작동합니다. –