2013-01-20 73 views
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]}位是用於?瞭解options_for_select與Rails中的地圖

我不是Rails專家,很難理解它的含義。任何幫助將不勝感激。

感謝

回答

5

地圖創建基於什麼被傳遞給它的塊返回一個新的數組。在這種情況下,它返回一個數組數組,其中包含來自earning_statements的標籤和ID。它看起來像

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

此數組然後用作選擇標記的選項。標籤是顯示的文本,id是用戶做出的選擇。