vis*_*071 -2 ruby arrays enums ruby-on-rails
假设我有这样的枚举:
enum colors: [:black, :dark_gray, :light_gray, :white]
Run Code Online (Sandbox Code Playgroud)
我希望输出为:
[["black",0], ["dark_gray",1], ["light_gray",2], ["white",3]]
Run Code Online (Sandbox Code Playgroud)
或者作为
[["Black",0], ["Dark gray",1], ["Light gray",2], ["White",3]] #using k.humanize on all keys
Run Code Online (Sandbox Code Playgroud)
我怎样才能将其作为输出.此外,这也可以来自1-d阵列.例如.
input=[1,2,3]
output=[[1,1],[2,4],[3,9]]
Run Code Online (Sandbox Code Playgroud)
使用像地图等的东西
我尝试使用map函数,但我尝试的方式给出了无效的语法.所以我在这里问了.答案应该是微不足道的,但我错过了一些东西.
我试过了:
op = colors.keys.map{[|s| s, colors[s]]}
Run Code Online (Sandbox Code Playgroud)
但这是错误的语法.
SyntaxError: unexpected ']', expecting '}'
Run Code Online (Sandbox Code Playgroud)
此工具已存在但您应将您的枚举更改为单数
enum color: [:black, :dark_gray, :light_gray, :white]
Run Code Online (Sandbox Code Playgroud)
现在调用模型中有一个类方法 colors
MyModel.colors
Run Code Online (Sandbox Code Playgroud)
这将返回一个哈希值
您可以使用该#to_a方法将其转换为数组数组
MyModel.colors.to_a
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
309 次 |
| 最近记录: |