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 | 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 | regex ที่ใช้ในการตรวจสอบหมายเลข (ค่าเริ่มต้น: /Ad{10,}z/ ) |
:cleanup_regex | 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 | regex ที่ใช้ในการตรวจสอบรหัส (ค่าเริ่มต้น: /A[az]d[az]d[az]dz/i ) |
:cleanup_regex | 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 | regex ที่ใช้ในการตรวจสอบรหัส (ค่าเริ่มต้น: `/A#([a-f0-9]{6} |
:cleanup_regex | 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 คือทีมงานที่มีความมุ่งมั่นตั้งใจและเชื่อว่างานเป็นสถานที่ที่คุณสามารถสร้างสรรค์สิ่งใหม่ๆ และสนุกสนานได้ เราคือทีมงานที่มีความสามารถซึ่งจินตนาการและสร้างแอปพลิเคชันบนเว็บและมือถือที่สวยงาม เรามารวมตัวกันเพื่อแบ่งปันความคิดและเปลี่ยนแปลงโลก
เราชอบซอฟต์แวร์โอเพ่นซอร์สและเราพยายามตอบแทนชุมชนให้มากที่สุด