-
Notifications
You must be signed in to change notification settings - Fork 2
Nested Validations
Kareem Gan edited this page Jan 16, 2016
·
1 revision
To create nested validations, reference the example below.
# validator
class CustomerDetailValidator
include PoroValidator.validator
validates :customer_id, presence: true
validates :customer do
validates :first_name, presence: true
validates :last_name, presence: true
end
validates :address do
validates :line1, presence: true
validates :line2, presence: true
validates :city, presence: true
validates :country do
validates :iso_code, presence: true
validates :short_name, presence: true
validates :coordinates do
validates :longtitude, presence: true
validates :latitude, presence:true
validates :planet do
validates :name, presence: true
end
end
end
end
end
entity = CustomerDetailEntity.new
validator = CustomerDetailValidator.new
validator.valid?(entity)
validator.errors.full_messages # => [
"customer_id is not present",
"{:customer=>:first_name} is not present",
"{:customer=>:last_name} is not present",
"{:address=>{:country=>{:coordinates=>:longtitude}}} is not present",
"{:address=>{:country=>{:coordinates=>:latitude}}} is not present",
"{:address=>{:country=>{:coordinates=>{:planet=>:name}}}} is not present"
]