<%= select_tag(:services,
options_from_collection_for_select(Service.all, :id, :name))%>
Run Code Online (Sandbox Code Playgroud)
它显示所有服务......
但我希望它是这样的:
Select a service
Service1
Service2
Service3
Service4
Run Code Online (Sandbox Code Playgroud)
Pra*_*art 152
大多数情况下,您不希望直接向数组添加任何内容; 这些都是一个更清洁的解决方案:
:prompt => "Placeholder",如果你想占位符展现出来,只有当属性是零的形式呈现的时间.它将默认选中,但如果用户提交,则不会保存任何内容.如果属性已经填充[可能因为a)有一个默认值或b)它是一个编辑表单],占位符项将完全从列表中省略.:include_blank => "Placeholder",如果你想在任何时候呈现的列表中的占位符.Zab*_*bba 14
<%= select_tag(:services,
Service.all.collect { |c| [c.id, c.name] }.
insert(0, "Select a Service"))%>
Run Code Online (Sandbox Code Playgroud)
正如对这个问题的回答,这是针对Rails 2.3的.对于Rails 3,请参阅Prathan Thananart的回答.
Wil*_*ill 13
更好的方法是使用:prompt参数.就像是:
select("post", "person_id", Person.all.collect {|p| [ p.name, p.id ] }, {:prompt => 'Select Person'})
Run Code Online (Sandbox Code Playgroud)
http://api.rubyonrails.org/classes/ActionView/Helpers/FormOptionsHelper.html
| 归档时间: |
|
| 查看次数: |
28805 次 |
| 最近记录: |