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]]

然后将该数组用作选择标记的选项。label 是显示的文本,id 是用户做出选择的参考。

于 2013-01-20T20:42:07.517 回答