Louche menambahkan validator umum untuk kelas ActiveModel/ActiveRecord.
Tambahkan baris ini ke Gemfile aplikasi Anda:
gem 'louche'
Louche menyediakan beberapa validator untuk digunakan di kelas ActiveModel/ActiveRecord Anda. Anda dapat menggunakan semua validator dengan versi awalan yang disimbolkan dengan huruf kecil sebagai kunci dan true
sebagai nilainya. Misalnya, untuk EmailValidator
:
class User < ApplicationRecord
validates :email , email : true
end
Secara opsional, jika Anda ingin menyesuaikan opsi default, Anda dapat meneruskan hash sebagai nilainya:
class User < ApplicationRecord
validates :email , email : { regex : /^.*@.*$/ , message : :blank }
end
Berikut validator yang Louche sediakan beserta pilihannya masing-masing:
EmailValidator
class User < ApplicationRecord
validates :email , email : true
end
User . new ( email : '[email protected]' ) . valid? # => true
User . new ( email : 'foo@example' ) . valid? # => false
Pilihan | Keterangan |
---|---|
:regex | Regex yang digunakan untuk memvalidasi email (default: /A([^@s]+)@((?:[-a-z0-9]+.)+[az]{2,})z/i ) |
:message | Pesan ActiveRecord ditambahkan ke catatan kesalahan (default: :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
Pilihan | Keterangan |
---|---|
:schemes | Skema URI yang diizinkan (default: %w(http https) ) |
:message | Pesan ActiveRecord ditambahkan ke catatan kesalahan (default: :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'
Pilihan | Keterangan |
---|---|
:regex | Regex yang digunakan untuk memvalidasi nomor (default: /Ad{10,}z/ ) |
:cleanup_regex | Regex yang digunakan untuk memvalidasi, membersihkan input sebelum memvalidasi/menyimpannya (default: /[^d]/ ) |
:message | Pesan ActiveRecord ditambahkan ke catatan kesalahan (default: :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'
Pilihan | Keterangan |
---|---|
:regex | Regex yang digunakan untuk memvalidasi kode (default: /A[az]d[az]d[az]dz/i ) |
:cleanup_regex | Regex yang digunakan untuk memvalidasi, membersihkan input sebelum memvalidasi/menyimpannya (default: /[^a-z0-9]/i ) |
:message | Pesan ActiveRecord ditambahkan ke catatan kesalahan (default: :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
Pilihan | Keterangan |
---|---|
:message | Pesan ActiveRecord ditambahkan ke catatan kesalahan (default: :invalid_array ) |
:validity_method | Metode yang akan dikirim ke setiap item array (default: :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 # => '#'
Pilihan | Keterangan |
---|---|
:regex | Regex yang digunakan untuk memvalidasi kode (default: `/A#([a-f0-9]{6} |
:cleanup_regex | Regex yang digunakan untuk memvalidasi, membersihkan input sebelum memvalidasi/menyimpannya (default: /[^#a-f0-9]/i ) |
:message | Pesan ActiveRecord ditambahkan ke catatan kesalahan (default: :invalid_rgb_hex ) |
Louche menggunakan pesan ActiveRecord standar. Berikut tampilan file config/locales/activerecord.en.yml
Anda:
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
adalah © 2014-2015 Mirego dan dapat didistribusikan secara bebas di bawah lisensi New BSD. Lihat file LICENSE.md
.
Mirego adalah tim yang terdiri dari orang-orang penuh semangat yang percaya bahwa pekerjaan adalah tempat di mana Anda dapat berinovasi dan bersenang-senang. Kami adalah tim yang terdiri dari orang-orang berbakat yang membayangkan dan membangun aplikasi Web dan seluler yang indah. Kami berkumpul untuk berbagi ide dan mengubah dunia.
Kami juga menyukai perangkat lunak sumber terbuka dan kami berusaha memberikan kontribusi sebanyak yang kami bisa kepada komunitas.