Module: EnumAttr::MixinForActiveRecord
- Includes:
- Mixin
- Defined in:
- lib/enum_attr_for_active_record.rb
Instance Method Summary collapse
Instance Method Details
#enum_attr(attr, enums) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# File 'lib/enum_attr_for_active_record.rb', line 9 def enum_attr(attr, enums) super(attr, enums) enums.each do |enum| scope "#{attr}_#{enum[2]}".to_sym, where("#{attr}=#{enum[1]}") end # end: enums.each validates_inclusion_of attr, :in => enums.map{|e| e[1] }, :allow_nil => true self.class_eval(%Q{ def attr read_attribute(attr.to_sym) end def attr=(value) write_attribute(attr.to_sym, value) end }) end |