Ruby on Rails 全局 ActiveRecord::Enum [英] Ruby on Rails Global ActiveRecord::Enum
本文介绍了Ruby on Rails 全局 ActiveRecord::Enum的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我真的很喜欢 Rails 4 的新 Enum 特性,但我想使用我的 enum
枚举状态:[:active, :inactive, :deleted]
在每个模型中.我找不到任何方法来声明例如 config/initializes/enums.rb
并包含每个模型
我是 Ruby on Rails
的新手,需要你的帮助来寻找解决方案
解决方案
使用 ActiveSupport::Concern
这个功能是为 dry
ing up 模型代码而创建的:
#app/models/concerns/my_enums.rb模块 MyEnums扩展 ActiveSupport::关注包括做枚举状态:[:active, :inactive, :deleted]结尾结尾# app/models/my_model.rb类 MyModel
阅读更多
>
I really like Rails 4 new Enum feature, but I want to use my enum
enum status: [:active, :inactive, :deleted]
in every model. I cannot find any way how to declare for example in config/initializes/enums.rb
and include every model
I'm very new in Ruby on Rails
and need your help to find solution
解决方案
Use ActiveSupport::Concern
this feature created for dry
ing up model codes:
#app/models/concerns/my_enums.rb
module MyEnums
extend ActiveSupport::Concern
included do
enum status: [:active, :inactive, :deleted]
end
end
# app/models/my_model.rb
class MyModel < ActiveRecord::Base
include MyEnums
end
# app/models/other_model.rb
class OtherModel
include MyEnums
end
这篇关于Ruby on Rails 全局 ActiveRecord::Enum的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文