<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专家,很难理解它的含义。任何帮助将不胜感激。
由于
答案 0 :(得分:5)
Map根据传递给它的块返回的内容创建一个新数组。在这种情况下,它返回一个数组数组,其中包含earning_statements的标签和id。它看起来像
[[label1, id1], [label2, id2]]
然后将此数组用作select标记的选项。标签是显示的文本,id是用户选择的参考。