No commit activity in last 3 years
No release in over 3 years
Association add-on for the Validatable gem
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
2023
2024
 Dependencies

Development

>= 1.2.8
 Project Readme

ValidatableAssociations¶ ↑

ValidatableAssociations is a Rails plugin and add-on to Jay Fields Validatable library. This add-on lets you specify associations to other validatable Classes and allows you to set up a decent validatable structure.

Install¶ ↑

Install the gem (recommended):

$ gem install validatable_associations

Please notice that the validatable_associations gem is in the gemcutter repository. Please follow the instructions provided on their website to set up your rubygems installation.

Or install as a Rails plugin:

$ script/plugin install git://github.com/rubiii/validatable_associations.git

Associations¶ ↑

A very simple example of a “User has one Gorilla” association:

class User
  include Validatable
  include ValidatableAssociations

  has_one :gorilla

  attr_accessor :username, :password

  validates_presence_of :username
  validates_length_of :password, :minimum => 6
end

class Gorilla
  include Validatable
  include ValidatableAssociations

  attr_accessor :name, :size

  validates_presence_of :name
  validates_numericality_of :size
end

Currently implemented associations:¶ ↑

The first version of this add-on only includes has_one associations. I intend to only add more associations if I need them myself or if anyone convinces me that he really needs support for another type of association.

Validation¶ ↑

Calling the valid? method (provided by the Validatable library) on an instance of one of your validatable Classes will also run the validations off all associations of the Class.

Mass-assignment¶ ↑

You can use mass-assignment to assign multiple values to your Class at once. This also includes every one of its associations.

user = User.new :username => "apricot", :password => "secret",
  :gorilla => { :name => "Joe", :size => 4411 }