Sha256: d73aae67079173fb518c003ff89cfd13507381a045f1a6adbfcbe3340a38de63

Contents?: true

Size: 1.96 KB

Versions: 3

Compression:

Stored size: 1.96 KB

Contents

== ActsAsEnum

主要应用于有枚举类型属性的Model,这个插件会帮我们生成一些常用到的方法。

如:枚举数组常量,每个元素的常量和布尔方法,属性的名字,Named scope方法


== Getting Started

In your Gemfile:

  gem 'acts_as_enum'# Last officially released gem
  # gem "acts_as_enum", :git => "git://github.com/liangwenke/acts_as_enum.git" # Track git repo

or, to install as a gem:

  gem install acts_as_enum

or, to install as a plugin:

  rails plugin install git://github.com/liangwenke/acts_as_enum.git


== Usage

Table column type as String

  class User < ActiveRecord::Base
    acts_as_enum :status, :in => [ ['disable', '冻结'], ['enable', '激活'] ]
  end

Table column type as Integer

  class User < ActiveRecord::Base
    acts_as_enum :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ]
  end

Table column type as String and Number

  class User < ActiveRecord::Base
    acts_as_enum :status, :in => [ ['disable', '0', '冻结'], ['enable', '1', '激活'] ]
  end

Table column type as Boolean

  class User < ActiveRecord::Base
    acts_as_enum :status, :in => [ ['disable', false, '冻结'], ['enable', true, '激活'] ]
  end


Also can usage alias enum_attr

  enum_attr :status, :in => [ ['disable', '冻结'], ['enable', '激活'] ]
  enum_attr :status, :in => [ ['disable', 0, '冻结'], ['enable', 1, '激活'] ]


Will generate bellow:

  Constants: User::STATUSES, User::DISABLE, User::ENABLE

  Named scopes: User.enable, User.disable

  Class methods: User.status_options

  Instance methods: user.status_name, user.enable?, user.disable?


If with option prefix is true:

  acts_as_enum :status, :in => [ ['disable', '冻结'], ['enable', '激活'] ], :prefix => true

Will generate bellow:

  User::STATUS_DISABLE, User::STATUS_ENABLE, User.status_enable, User.status_disable, user.status_enable?, user.status_disable?


== Note

Copyright (c) 2010 liangwenke.com@gmail.com, released under the MIT license

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
acts_as_enum-1.1.4 README.rdoc
acts_as_enum-1.1.3 README.rdoc
acts_as_enum-1.1.2 README.rdoc