首页
/ ActiveEnum 技术文档

ActiveEnum 技术文档

2024-12-23 10:22:10作者:瞿蔚英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 项目。

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

热门内容推荐

最新内容推荐

项目优选

收起
ohos_react_nativeohos_react_native
React Native鸿蒙化仓库
C++
179
263
RuoYi-Vue3RuoYi-Vue3
🎉 (RuoYi)官方仓库 基于SpringBoot,Spring Security,JWT,Vue3 & Vite、Element Plus 的前后端分离权限管理系统
Vue
869
514
openGauss-serveropenGauss-server
openGauss kernel ~ openGauss is an open source relational database management system
C++
130
183
openHiTLSopenHiTLS
旨在打造算法先进、性能卓越、高效敏捷、安全可靠的密码套件,通过轻量级、可剪裁的软件技术架构满足各行业不同场景的多样化要求,让密码技术应用更简单,同时探索后量子等先进算法创新实践,构建密码前沿技术底座!
C
328
377
Cangjie-ExamplesCangjie-Examples
本仓将收集和展示高质量的仓颉示例代码,欢迎大家投稿,让全世界看到您的妙趣设计,也让更多人通过您的编码理解和喜爱仓颉语言。
Cangjie
333
1.09 K
harmony-utilsharmony-utils
harmony-utils 一款功能丰富且极易上手的HarmonyOS工具库,借助众多实用工具类,致力于助力开发者迅速构建鸿蒙应用。其封装的工具涵盖了APP、设备、屏幕、授权、通知、线程间通信、弹框、吐司、生物认证、用户首选项、拍照、相册、扫码、文件、日志,异常捕获、字符、字符串、数字、集合、日期、随机、base64、加密、解密、JSON等一系列的功能和操作,能够满足各种不同的开发需求。
ArkTS
28
0
CangjieCommunityCangjieCommunity
为仓颉编程语言开发者打造活跃、开放、高质量的社区环境
Markdown
1.08 K
0
kernelkernel
deepin linux kernel
C
22
5
WxJavaWxJava
微信开发 Java SDK,支持微信支付、开放平台、公众号、视频号、企业微信、小程序等的后端开发,记得关注公众号及时接受版本更新信息,以及加入微信群进行深入讨论
Java
829
22
cherry-studiocherry-studio
🍒 Cherry Studio 是一款支持多个 LLM 提供商的桌面客户端
TypeScript
601
58