2016-12-13 29 views
0

我覺得這是這樣一個簡單的問題Ruby on Rails的把每次迭代到一個數組

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

提出的ID如下:

1 
2 
3 etc... 

如何打開迭代到一個數組?

所以輸出如下:

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

爲什麼downvoting而不解釋爲什麼?完全沒用。如果你認爲這個問題需要改進或者不應該在這裏,請向OP解釋,以便他/她學習。 –

回答

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的可枚舉的簡寫。

2

您可以使用map

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

@state.map(&:id)會給你同樣的結果!