3
<form id="earnings_select" action="<%= publishers_earnings_statements_url %>" method="get">
  <% unless current_publisher.earnings_statements.all.size == 0 %>
    <%= select_tag 'id', 
                   options_for_select(current_publisher.earnings_statements.all.map{|s| [s.label, s.id.to_s]}, params[:id]),
                   :id => 'earnings_select_id' %>  
    <input type="submit" value="Go">
  <% end %>
</form>

それは私が持っているコードです...誰かがcurrent_publisher.earnings_statements.all.map{|s| [s.label, s.id.to_s]}ビットが何のためにあるのか説明してもらえますか?

私はRailsの専門家ではなく、それが何を意味するのか理解するのに苦労しています。どんな助けでも大歓迎です。

ありがとう

4

1 に答える 1

5

Map は、渡されたブロックによって返されたものに基づいて新しい配列を作成します。この場合、earning_statements からのラベルと ID を含む配列の配列を返します。それは次のようになります

[[label1, id1], [label2, id2]]

この配列は、select タグのオプションとして使用されます。label は表示されるテキストであり、id はユーザーが行う選択への参照です。

于 2013-01-20T20:42:07.517 に答える