Mic*_*enn 13 activerecord ruby-on-rails ruby-on-rails-4
如何测试ActiveRecord属性是否为Enum?(根据Rails 4.1枚举声明)
它存储在数据库中,并使用columns_hash上的type方法将属性标识为整数.
模型中的枚举定义
enum status: [ :in_progress, :accepted, :approved, :declined, :closed, :cancelled, :submitted ]
Run Code Online (Sandbox Code Playgroud)
拉类型
irb(main):030:0> Application.columns_hash['status'].type
=> :integer
Run Code Online (Sandbox Code Playgroud)
Ste*_*fan 23
ActiveRecord::Enum添加一个defined_enumsclass属性 - 一个存储定义的枚举的哈希:
Application.defined_enums
#=> {"status"=>{"in_progress"=>0, "accepted"=>1, "approved"=>2, "declined"=>3, "closed"=>4, "cancelled"=>5, "submitted"=>6}}
Run Code Online (Sandbox Code Playgroud)
要测试属性是否为枚举,您可以使用:
Application.defined_enums.has_key?('status')
#=> true
Run Code Online (Sandbox Code Playgroud)
不幸的是,defined_enums没有记录.
| 归档时间: |
|
| 查看次数: |
2154 次 |
| 最近记录: |