Ruby on Rails将每次迭代转换为数组

时间:2016-12-13 21:00:49

标签: ruby-on-rails ruby

我觉得这是一个很容易的问题

<% @state.cities.each do |city| %>
   <%= city.id %>
<% end %>

将ID设置如下:

1
2
3 etc...

如何将迭代转换为数组?

所以输出如下:

[1,2,3,4,etc...] 

3 个答案:

答案 0 :(得分:3)

有一种方法可以做到这一点!

您正在寻找的是map方法。

  

创建一个包含块返回值的新数组。

http://apidock.com/ruby/Array/map

文档说明,创建一个包含块返回值的数组。

@state.map do |state|
  state.id
end
=> [1,2,3,...]

与以下内容相同:

@state.map(&:id)
=> [1,2,3,...]

但是使用Ruby Enumerable简写。

答案 1 :(得分:2)

您可以使用map

<%= @state.map(&:id) %>

答案 2 :(得分:2)

@state.map(&:id)会给你相同的结果!