Schema Validations plugin
Plugin details
Documentation
ruby script/plugin install svn://rubyforge.org/var/svn/redhillonrails/trunk/vendor/plugins/schema_validations
Over and above installing the plugin, no further action is required for the validations to take effect; the database schema constraints will be read and applied as validations when your ActiveRecord model classes are loaded; just like magic.
The plugin supports the following constraints:
* NOT NULL is converted to validates_presence_of (including belongs_to associations);
* Numbers are checked using validates_numericality_of (including :only_integer => true);
* String lengths are checked using validates_length_of;
* Single-column unique indexes are converted to validates_uniqueness_of; and
* Multi-column unique indexes are converted to validates_uniqueness_of with scope.
For multi-column unique indexes the column validated for uniqueness is either the last column not ending in ‘_id’ or simply the last column. This follows the typical composite unique index column ordering where the scoping is specified first but will attempt to find the last non-foreign-key column just-in-case.
For example, either of the following two statements in a schema migration script:
add_index :states, [:country_id, :name], :unique => true add_index :states, [:name, :country_id], :unique => true
would result in:
validates_uniqueness_of :name, :scope => [:country_id]
Validation may be limited to specific columns by calling schema_validations from within your model class, passing either a single column:
class Country < ActiveRecord::Base schema_validations :only => :name end
or an array of columns:
class Country < ActiveRecord::Base schema_validations :except => [:isocode, :iddcode] end
Further Documentation
There is currently no advanced documentation for this plugin.
New documentationEdit plugin | (0 older versions) | Last edited by: maxim_kulkin, 8 months ago

