首页
/ ActiveEnum 技术文档

ActiveEnum 技术文档

2024-12-23 15:57:18作者:瞿蔚英Wynne

1. 安装指南

支持的 Ruby 版本

ActiveEnum 支持 Ruby 2.0 及以上版本。

支持的 Rails 版本

从 gem 版本 1.0 开始,ActiveEnum 仅支持 Rails 4 及以上版本。如果你需要 Rails 3 的兼容性,请查看 0.9 分支

安装步骤

  1. 使用 gem 安装 ActiveEnum:

    gem install active_enum
    
  2. 在 Gemfile 中添加以下内容:

    gem 'active_enum', '~> 1.0.0'
    
  3. 生成配置初始化文件:

    rails generate active_enum:install
    

2. 项目的使用说明

定义枚举类

你可以通过以下几种方式定义枚举类:

使用显式的 ID 和名称

class Sex < ActiveEnum::Base
  value :id => 1, :name => 'Male'
  value :id => 2, :name => 'Female'
end

使用 ID 作为键

class Sex < ActiveEnum::Base
  value 1 => 'Male'
  value 2 => 'Female'
end

使用隐式的 ID 值

class Sex < ActiveEnum::Base
  value :name => 'Male'
  value :name => 'Female'
end

枚举类的使用

Sex[1]        # => 'Male'
Sex['Male']   # => 1
Sex[:male]    # => 1
Sex.meta(1)   # => { :symbol => '♂' }
Sex.to_select # => [['Male', 1], ['Female',2]] for select form helpers

排序

你可以通过 order 方法定义返回值的排序方式:

class Sex < ActiveEnum::Base
  order :asc

  value :id => 1, :name => 'Male'
  value :id => 2, :name => 'Female'
end

枚举模型属性

使用枚举来枚举 ActiveRecord 模型属性:

class User < ActiveRecord::Base
  enumerate :sex, :with => Sex
end

验证

你可以在验证中使用枚举:

class User < ActiveRecord::Base
  enumerate :sex, :with => Sex

  validates_inclusion_of :sex, :in => Sex
end

属性值查找

访问枚举值和枚举类:

user = User.new
user.sex = 1
user.sex          # => 1

user.sex(:id)     # => 1
user.sex(:name)   # => 'Male'
user.sex(:enum)   # => Sex
user.sex(:symbol) # => ♂  ( Can use any meta data key )

布尔检查

检查属性值是否匹配特定的枚举值:

user.sex?(:male)    # => true
user.sex?(:Male)    # => true
user.sex?('Male')   # => true
user.sex?('Female') # => false

枚举查找

在类上提供一个方便的方法来获取任何枚举属性的枚举类:

User.active_enum_for(:sex) # => Sex

3. 项目 API 使用文档

枚举类的定义

  • value(id: 1, name: 'Male'): 定义枚举值。
  • order(:asc): 定义枚举值的排序方式。

枚举类的使用

  • Sex[1]: 根据 ID 获取枚举值。
  • Sex['Male']: 根据名称获取枚举值。
  • Sex.meta(1): 获取枚举值的元数据。
  • Sex.to_select: 生成用于表单选择的选项。

模型属性的枚举

  • enumerate :sex, :with => Sex: 将枚举类与模型属性关联。
  • validates_inclusion_of :sex, :in => Sex: 在验证中使用枚举。

属性值查找

  • user.sex(:id): 获取属性值的 ID。
  • user.sex(:name): 获取属性值的名称。
  • user.sex(:enum): 获取属性值的枚举类。

布尔检查

  • user.sex?(:male): 检查属性值是否匹配特定的枚举值。

枚举查找

  • User.active_enum_for(:sex): 获取模型属性的枚举类。

4. 项目安装方式

通过 gem 安装

gem install active_enum

在 Gemfile 中添加

gem 'active_enum', '~> 1.0.0'

生成配置初始化文件

rails generate active_enum:install

通过以上步骤,你可以成功安装并使用 ActiveEnum 项目。

登录后查看全文
热门项目推荐