Skip to content

liangwenke/acts_as_enum

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

44 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

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

Default

class User < ActiveRecord::Base
  enum_attr :status, :in => %w(disable, enable)
end

Table column type as String

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

Or

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

class User < ActiveRecord::Base
  enum_attr :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, User.status_options_i18n

Instance methods: user.status_name, user.status_name_i18n, user.enable?, user.disable?, 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?

Support I18N

Class methods: User.status_options_i18n

Instance methods: user.status_name_i18n

Note

Copyright © 2010 liangwenke.com@gmail.com, released under the MIT license

About

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

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •  

Languages