使用Rails生成带有数字范围和步长的选择标签

6

如何编写最简单的Rails select标签,以生成在0.5增量下步进的1-15数字选择?

我知道这一定很简单,但是我在语法上遇到了困难,我知道一定有比我写的更优雅的方法。

谢谢!

3个回答

17
select_tag "sizes", options_for_select((4..15).step(0.5))

这是我的写法...但这是否是最好的方法?

另外,如果我想让4.0/5.0/6.0等读作整数4/5/6,有没有一种方法可以在一行中实现?


1
你可以将这些值映射并将它们从浮点数转换为定点数,如果它们是整数的话:(4..15).step(0.5).map{ |n| n % 1 == 0 ? n.to_i : n } - JD Isaacks

3
select_tag "sizes", options_for_select( (4..15).step(0.5).map{|n| n%1 == 0 ? n.to_i : n} )

0

options_for_select 方法可以实现你想要的功能,但前提是你需要提供正确的数据。这意味着你需要一个包含适当值的数组。例如:

options_for_select((0..28).to_a.collect { |v| v.to_f / 2 + 1 })

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接