假设我有一个有枚举的课程
class Course < ActiveRecord::Base
enum status: { active: 1, in_progress: 2, disabled: 3, ... }
end
我想补丁枚举功能,所以我可以做
Course.statuses.capitalize
将返回所有状态的列表 - 大写且没有下划线。
我尝试了几件事,但似乎没有任何帮助。有什么想法吗?
由于
以下是我的尝试。我对猴子补丁的经验是有限的,所以不确定我是否在正确的道路上。
module ActiveRecord
module Enum
def capitalize
self.map{ |s| [s[0].capitalize, s[1]] }
end
end
end
答案 0 :(得分:0)
我没有看到猴子修补此问题,因为你想要的东西已经存在于Rails中。
class Course < ActiveRecord::Base
enum status: { active: 1, in_progress: 2, disabled: 3 }
end
Course.statuses.transform_keys{|k| k.to_s.humanize}
# => {"Active": 1, "In progress": 2, "Disabled": 3}