从整数值获取枚举字符串名称的最佳方法是什么?

15

我需要通过整数值获取枚举状态的字符串名称,我是这样做的

Order.states.find{|x| x[1] == data['stateId']}

有没有人知道更好的方法来做这件事?

enum state: {
         created: 0,
         cancelled: 100,
         complete: 10,
       }

你能分享一下枚举的定义吗? - R. Sierra
可能是如何在Rails中从枚举值获取键名?的重复问题。 - Wayne Conrad
2个回答

33
Order.states.key(100) => 'cancelled'

4
这里有一个解决方案,可以消除魔数。
Order.states.key(Order.states[:cancelled]) => 'cancelled'

1
这个表达式并没有解决问题,如果我知道状态是“取消”,为什么还要在状态数组中查找呢?在我的情况下,我有一个整数值。 - eugene_trebin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接