2016-12-13 9 views
0

に各反復を回す私はこのように感じる、以下のような簡単な質問Rubyは、配列

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

は、IDSを入れている:

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)あなたに同じ結果を与えるだろう!