Hello,
MyModel.rb,
TYPES = { "type1" => 1 , "type2" => 2, "type3" => 3 }.freeze validates_inclusion_of :my_type, :in => TYPES.keys
Hello,
MyModel.rb,
TYPES = { "type1" => 1 , "type2" => 2, "type3" => 3 }.freeze validates_inclusion_of :my_type, :in => TYPES.keys
The validations attribute is kept in sync by the various macros (validates* and validates itself), but it is NOT the mechanism used to actually do the validation - that’s handed off to the callbacks stuff (which also handles :on, :if, and :unless criteria).
This post seems closer to what you’re intending:
http://gistflow.com/posts/749-canceling-validations-in-activerecord
But I’d recommend thinking more about what the intent actually is - if you’re trying to override the list of possible types in a subclass, it would make more sense to have an explicit validator that asks the class for the correct set of types to be used.
–Matt Jones
Thank You Matt. I was not aware of this. This helped me solve my
problem.
The "sub class" idea is a good one, did not occur to me at all.