Skip to content

This Ruby on Rails plugin provides an additional Errors object, referred to as warnings, to ActiveRecord objects. Unlike validations, soft validations are not tied in to an AR object's lifecycle and can be used to specify recommended states for data.

License

juliamae/soft_validations

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

SoftValidations
===============

This plugin provides an additional Errors object, referred to as warnings, to ActiveRecord objects. The warnings object is not tied in to a model's life cycle. Thus, an ActiveRecord object can be saved while still having messages in its warnings. This might be useful for sites that would want to keep track of recommended fields for users to complete, or sites with large amounts of erroneous imported data which might benefit from suspending some validations for a little while.


Example
=======

Use SoftValidations::Validation#soft_validation to add a descriptive declaration of an ActiveRecord object's desired state in order to be considered complete. The methods or block passed to soft_validate should add a message to the class's warning collection.

  class Employee < ActiveRecord::Base
    soft_validate :should_have_first_name
    
    protected
    def should_have_first_name
      warnings.add(:first_name, "shouldn't be blank") unless attribute_present?(:first_name)
    end
  end

To generate warnings, you should first call complete?

	>> employee = Employee.new
	>> employee.complete? 
	=> false
	>> employee.warnings.on(:first_name) 
	=> "shouldn't be blank"


Copyright (c) 2008 Julia West, released under the MIT license

About

This Ruby on Rails plugin provides an additional Errors object, referred to as warnings, to ActiveRecord objects. Unlike validations, soft validations are not tied in to an AR object's lifecycle and can be used to specify recommended states for data.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages