ActiveRecord::JSONValidator
makes it easy to validate JSON attributes against a JSON schema.
Add this line to your application's Gemfile:
gem 'activerecord_json_validator'
{
"type": "object",
"$schema": "http://json-schema.org/draft-03/schema",
"properties": {
"city": { "type": "string", "required": false },
"country": { "type": "string", "required": true }
}
}
create_table "users" do |t|
t.string "name"
t.json "profile" # First-class JSON with PostgreSQL, yo.
end
class User < ActiveRecord::Base
# Constants
PROFILE_JSON_SCHEMA = Rails.root.join('config', 'schemas', 'profile.json_schema')
# Validations
validates :name, presence: true
validates :profile, presence: true, json: { schema: PROFILE_JSON_SCHEMA }
end
user = User.new(name: 'Samuel Garneau', profile: { city: 'Quebec City' })
user.valid? # => false
user = User.new(name: 'Samuel Garneau', profile: { city: 'Quebec City', country: 'Canada' })
user.valid? # => true
ActiveRecord::JSONValidator
is © 2013 Mirego and may be freely distributed under the New BSD license. See the LICENSE.md
file.
Mirego is a team of passionate people who believe that work is a place where you can innovate and have fun. We're a team of talented people who imagine and build beautiful Web and mobile applications. We come together to share ideas and change the world.
We also love open-source software and we try to give back to the community as much as we can.