如何从rails中的范围构建选择标记
我希望有一个下降值,包含值10%20%30%,所以直到100。
在ruby中它可以通过
(10..100).step(10) { |i| pi }
我该如何将其转换为选择标签?
我试过了:
但这是打印10 11 12 13....100
你几乎拥有它:
<%=p.select :thc, options_for_select((10..100).step(10).to_a.map{|s| ["#{s}%", s]})%>
#step
返回一个枚举器(或者如你所示,得到)。 看起来你想要的是在这个枚举#collect
上调用#collect
。
<%=p.select :thc, options_for_select((10..100).step(10).collect {|s| ["#{s}%", s]})%>
<%= select("sale", "discount", (10..100).step(10).collect {|p| [ "#{p}%", p ] }, { :include_blank => true }) %>
没有提供格式化的价值。
如果你像我一样登陆这里,而不需要使用step()
或提供格式化的值(例如“20%”),这是一个很好的简洁方法:
<%= f.select :year, (2011..Date.today.year).to_a %>
使用默认值
<%= f.select :year, options_for_select( (2011..Date.today.year).to_a, Date.today.year ) %>