导轨和表格:下拉数字范围和无限制

我现在有这个:

 

这将导致:

 1 2 3 4 5 6 7 8 9 ... 

如何在选择中添加另一个选项,即“ 全部 ”,哪个值应为零

几乎可以做你想要的:

 <%= f.select :credit, ((0..500).map {|i| [i,i] } << ["No limit",nil]) %> 

select可以采用多种格式作为选项列表。 其中一个是数组,如这里给出的。 外部数组中的每个元素都是一个2元素数组,按顺序包含显示的选项文本和表单值。

上面的map(0..500)转换为这样的数组,其中显示的选项与表单值相同。 然后添加最后一个选项。

请注意,如果选择“无限制”,这将为参数生成值“”(空字符串) – 如果将选择字段放入表单并提交表单,浏览器将为该表单参数发送一些内容 ,并且无法明确地将nil作为表单参数发送。 如果你真的想要你可以使用一些聪明的javascript来让浏览器根本不发送参数,但这比简单地添加更多:

 param[:credit] == "" and param[:credit] = nil 

你的控制器动作。

如果我正确理解了这个问题,你可以使用options_for_selectprompt这样做比所选答案中显示的更干净:

 <%= f.select :credit, options_for_select(0..500), { prompt: "No Limit" } %> 

请参阅此处的文档: http : //apidock.com/rails/ActionView/Helpers/FormOptionsHelper/select