如何在options_from_collection_for_select中添加“select one ...”

时间:2012-07-27 08:42:13

标签: ruby-on-rails

以下是我的选择表格,它可以正常运作。

当用户加载页面时,它应显示一个初始的“选择一个...”,其值为null或'。

我试图将它添加到Object但是无法并且很乐意获得帮助!

非常感谢!


在我看来:

= select_tag 'incident[fault_id]' , options_from_collection_for_select( Fault.all, :id, :label)

我使用Rails 3.2和HAML


更新

我偶然发现了一些非常甜蜜的东西:

include_blank: 'select one...'

或完全

= f.collection_select :fault_id, Fault.order(:label), :id, :label, include_blank: 'select one...'

如果有人也喜欢......

参考:http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html

3 个答案:

答案 0 :(得分:43)

options_from_collection_for_select返回一串选项标记,这些标记通过迭代集合并将调用结果分配给value_method作为选项值并将text_method作为选项文本分配来编译。

所以只需在其中添加“select_one”选项字符串,不带值:

 = select_tag 'incident[fault_id]', content_tag(:option,'select one...',:value=>"")+options_from_collection_for_select( Fault.all, :id, :label)

答案 1 :(得分:24)

:promptselect_tag 属于<{1}} 的属性

options_from_collect_for_select

答案 2 :(得分:0)

您可以尝试以下方法:

collection_select(:sales_rep, :manufacturer_id, @manufacturers, :id, :name, { :prompt => 'Select Manufacturer' })