나는 클래스 링크가 있습니다. 이 클래스는 형식에 대한 사용자 지정 유효성 검사
가 나는 사용자가 시작 텍스트 상자에 링크를 삽입 할 때 확실하게 검증을 작성하려면 이러한 특성
- 에게 트위터
- 페이스 북
- 대표자 :
- Quora에있다 http 또는 https.
유효성 검사는 작동하지만 사용자가 링크를 전혀 삽입하지 않으면 문제가 발생합니다. 여전히 빈 특성에 대한 유효성 검사를 실행하려고 시도하고 오류가 발생합니다. 아래 코드는 빈 속성을 검사하기위한 나의 시도입니다.
class Links < ActiveRecord::Base attr_accessible :facebook, :twitter, :quora, :pinterest validate :formatted_link def formatted_link links = %w(facebook twitter pinterest quora) if links.any? {|link| self[link].nil?} #Don't want it to do any validation if column is nil. #Would like to drop column if user doesn't add a link. else validates_format_of links, :with => URI::regexp(%w(http https)) errors.add(:base, "Your link must start with http or https.") end end
이유 : 사용자가 그냥 "www.twitter.com/username"를 제출
경우 내 사이트에 추가 된 URL의 GET이의 URL "mydomain.com/page/ 여기
내 검증의 다른 뭔가가있는 경우 www.twitter.com/username. 이런 일이 왜 확실하지. 내가 알려 주시기 바랍니다 실종이 또는 무언가를 방지 할 수 있습니다.감사합니다.
davogones에게 감사드립니다. allow_blank가 작동했습니다. 답변을 투표 할 수 없습니다. b/c 충분한 담당자 점수가 없습니다. – Zach