jfcouture / enum_field forked from jamesgolick/enum_field

This URL has Read+Write access

jfcouture (author)
Tue Feb 24 18:36:20 -0800 2009
commit  562ca4620444724ce8ec91192467c31d64753d4e
tree    e53c1e5e7ee4b076e8c15822154c3264b7a85a72
parent  9f3cbd9095477e2cf1e1a6c934a10a9525bce355
README.rdoc

EnumField

Macro to emulate a MySQL enum_field type thing.

Usage

This plugin encapsulates a validates_inclusion_of and automatically gives you a few more goodies automatically. That’s it!

    class Computer < ActiveRecord:Base
      enum_field :status, ['on', 'off', 'standby', 'sleep', 'out of this world']

      # Optionally with a message to replace the default one
      # enum_field :status, ['on', 'off', 'standby', 'sleep', 'out of this world'], :message => "incorrect status"

      #...
    end

This will give you a few things:

  • add a validates_inclusion_of with a simple error message ("invalid #{field}") or your custom message
  • define the following query methods, in the name of expressive code:
    • on?
    • off?
    • standby?
    • sleep?
    • out_of_this_world?
  • define the STATUSES constant, which contains the acceptable values

License

Copyright © 2008 James Golick, released under the MIT license