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 ). |
Луш использует стандартные сообщения 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
© Mirego, 2014–2015, может свободно распространяться по новой лицензии BSD. См. файл LICENSE.md
.
Mirego — это команда увлеченных людей, которые верят, что работа — это место, где можно внедрять инновации и получать удовольствие. Мы — команда талантливых людей, которые придумывают и создают красивые веб-приложения и мобильные приложения. Мы собираемся вместе, чтобы делиться идеями и менять мир.
Мы также любим программное обеспечение с открытым исходным кодом и стараемся вернуть сообществу как можно больше.