假设我有一个这样的枚举:
enum colors: [:black, :dark_gray, :light_gray, :white]
我希望输出为:
[["black",0], ["dark_gray",1], ["light_gray",2], ["white",3]]
或
[["Black",0], ["Dark gray",1], ["Light gray",2], ["White",3]] #using k.humanize on all keys
如何将此作为输出。此外,这也可以来自1-d阵列。例如
input=[1,2,3]
output=[[1,1],[2,4],[3,9]]
使用地图等等。
我尝试使用map
函数,但我尝试的方式提供了无效的语法。所以我在这里问了。答案应该是微不足道的,但我错过了一些东西。
我试过了:
op = colors.keys.map{[|s| s, colors[s]]}
但这是错误的语法。
SyntaxError: unexpected ']', expecting '}'
答案 0 :(得分:5)
此功能已存在,但您应将枚举更改为单数
enum color: [:black, :dark_gray, :light_gray, :white]
您的模型中有一个类方法现在称为colors
MyModel.colors
将返回哈希
您可以使用#to_a
方法
MyModel.colors.to_a