Rod*_*uza -2 ruby ruby-on-rails
我有一张Status已播种的桌子.我想得到:
['Aberto', 'Pendente', 'Concluido', 'Fechado']
Run Code Online (Sandbox Code Playgroud)
当我输入:
Status.all.to_a.each { |u| u.nome }
Run Code Online (Sandbox Code Playgroud)
我明白了:
[#<Status id: 1, nome: "Aberto">, #<Status id: 2, nome: "Pendente">, #<Status id: 3, nome: "Concluido">, #<Status id: 4, nome: "Fechado">]
Run Code Online (Sandbox Code Playgroud)
谁能告诉我发生了什么?
Array#each用于迭代,Array#map用于映射.在这里,您想将nome 映射 到每个状态.因此,只需使用:Array#map
Status.all.to_a.map { |u| u.nome }
Run Code Online (Sandbox Code Playgroud)
甚至更好,快捷方式:
Status.all.to_a.map(&:nome)
Run Code Online (Sandbox Code Playgroud)
你可以使用采摘
Status.pluck(:nome) # => ['Aberto', 'Pendente', 'Concluido', 'Fechado']
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
141 次 |
| 最近记录: |