2017-03-16 70 views
4

我需要整数值来获得枚举状态的字符串名称获得枚举字符串名称的最好方式,我做下一个方式什么是从整数值

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

是否有人知道更好的方式来做到这一点?

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

你能分享枚举定义吗? –

回答

10
Order.states.key(100) => 'cancelled' 
0

这里有一个解决方案,消除了神奇的数字。

Order.states.key(Order.states[:cancelled]) => 'cancelled' 
+0

这个表达式不能解决问题,如果我知道状态是:取消,为什么我会在状态数组中找到它?在我的情况下,我有一个整数值 –

+0

啊,你是对的。没有仔细阅读这个问题。 – Dty