Louche는 ActiveModel/ActiveRecord 클래스에 대한 공통 유효성 검사기를 추가합니다.
애플리케이션의 Gemfile에 다음 줄을 추가하세요.
gem 'louche'
Louche는 ActiveModel/ActiveRecord 클래스에서 사용할 수 있는 몇 가지 유효성 검사기를 제공합니다. 접두사의 소문자 기호 버전을 키로, true
를 값으로 사용하여 모든 유효성 검사기를 사용할 수 있습니다. 예를 들어 EmailValidator
의 경우:
class User < ApplicationRecord
validates :email , email : true
end
선택적으로 기본 옵션을 사용자 정의하려면 해시를 값으로 전달할 수 있습니다.
class User < ApplicationRecord
validates :email , email : { regex : /^.*@.*$/ , message : :blank }
end
Louche가 해당 옵션과 함께 제공하는 유효성 검사기는 다음과 같습니다.
EmailValidator
class User < ApplicationRecord
validates :email , email : true
end
User . new ( email : '[email protected]' ) . valid? # => true
User . new ( email : 'foo@example' ) . valid? # => false
옵션 | 설명 |
---|---|
:regex | 이메일을 확인하는 데 사용되는 정규식(기본값: /A([^@s]+)@((?:[-a-z0-9]+.)+[az]{2,})z/i ) |
:message | 기록 오류에 ActiveRecord 메시지가 추가되었습니다. (기본값: :invalid_email ) |
URLValidator
class User < ApplicationRecord
validates :website , url : true
end
User . new ( website : 'http://example.com' ) . valid? # => true
User . new ( website : 'example.$$$' ) . valid? # => false
옵션 | 설명 |
---|---|
:schemes | 허용할 URI 스키마(기본값: %w(http https) ) |
:message | 기록 오류에 ActiveRecord 메시지가 추가되었습니다. (기본값: :invalid_url ) |
PhoneNumberValidator
class User < ApplicationRecord
validates :phone_number , phone_number : true
end
user = User . new ( phone_number : '514 555-2525' )
user . valid? # => true
user . phone_number # => '5145552525'
user = User . new ( phone_number : '555-2525' )
user . valid? # => false
user . phone_number # '5552525'
옵션 | 설명 |
---|---|
:regex | 숫자를 검증하는 데 사용되는 정규식(기본값: /Ad{10,}z/ ) |
:cleanup_regex | 유효성 검사/저장하기 전에 입력을 정리하는 데 사용되는 정규식(기본값: /[^d]/ ) |
:message | 기록 오류에 ActiveRecord 메시지가 추가되었습니다. (기본값: :invalid_phone_number ) |
PostalCodeValidator
class User < ApplicationRecord
validates :postal_code , postal_code : true
end
user = User . new ( postal_code : 'G0R 2T0' )
user . valid? # => true
user . postal_code # => 'G0R2T0'
user = User . new ( postal_code : 'L -0- L' )
user . valid? # => false
user . postal_code # => 'L0L'
옵션 | 설명 |
---|---|
:regex | 코드를 검증하는 데 사용되는 정규식(기본값: /A[az]d[az]d[az]dz/i ) |
:cleanup_regex | 유효성 검사/저장하기 전에 입력을 정리하는 데 사용되는 정규식(기본값: /[^a-z0-9]/i ) |
:message | 기록 오류에 ActiveRecord 메시지가 추가되었습니다. (기본값: :invalid_postal_code ) |
ArrayValidator
class Tag < Struct . new ( :name )
def valid?
name . present?
end
end
class User < ApplicationRecord
validates :tags , array : true
def tags = ( tags )
super tags . map { | tag | Tag . new ( tag ) }
end
end
User . new ( tags : [ 'food' , 'beer' , 'code' ] ) . valid? # => true
User . new ( tags : [ 'food' , '' , 'code' ] ) . valid? # => false
옵션 | 설명 |
---|---|
:message | 오류 기록에 ActiveRecord 메시지가 추가되었습니다. (기본값: :invalid_array ) |
:validity_method | 각 배열 항목에 전달될 메소드 (기본값: :valid? ) |
RgbHexValidator
class Flag < ApplicationRecord
validates :color , rgb_hex : true
end
flag = Flag . new ( color : '#ff0000' )
flag . valid? # => true
flag . color # => '#ff0000'
flag = Flag . new ( color : '#zzzzzz' )
flag . valid? # => false
flag . color # => '#'
옵션 | 설명 |
---|---|
:regex | 코드를 검증하는 데 사용되는 정규식(기본값: `/A#([a-f0-9]{6} |
:cleanup_regex | 유효성 검사/저장하기 전에 입력을 정리하는 데 사용되는 정규식(기본값: /[^#a-f0-9]/i ) |
:message | 기록 오류에 ActiveRecord 메시지가 추가되었습니다. (기본값: :invalid_rgb_hex ) |
Louche는 표준 ActiveRecord 메시지를 사용합니다. config/locales/activerecord.en.yml
파일은 다음과 같습니다.
en :
errors :
messages :
invalid_email : is not a valid email address
invalid_url : is not a valid URL
invalid_phone_number : is not a valid phone number
invalid_postal_code : is not a valid postal code
invalid_array : contains invalid items
invalid_rgb_hex : is not a valid color
Louche
는 © 2014-2015 Mirego이며 New BSD 라이센스에 따라 자유롭게 배포될 수 있습니다. LICENSE.md
파일을 참조하세요.
Mirego는 일이 혁신을 이루고 즐거움을 누릴 수 있는 곳이라고 믿는 열정적인 사람들로 구성된 팀입니다. 우리는 아름다운 웹 및 모바일 애플리케이션을 상상하고 구축하는 재능 있는 사람들로 구성된 팀입니다. 우리는 함께 모여 아이디어를 공유하고 세상을 변화시킵니다.
우리는 또한 오픈 소스 소프트웨어를 좋아하며 가능한 한 커뮤니티에 환원하려고 노력합니다.