Ruby on rails 显示在rails下拉列表中选择的选项
我有以下代码:Ruby on rails 显示在rails下拉列表中选择的选项,ruby-on-rails,haml,html-select,Ruby On Rails,Haml,Html Select,我有以下代码: %tr %th Parent %td %select{ :name => "firstlevel_id", :value => "#{@s.firstlevel_id}" } - Firstlevel.find(:all).each do |f| %option{ :value => "#{f.id}" } #{f.title} 但是即使firstlevel\u id已经是选项列表中的一个id,它也不会显
%tr
%th Parent
%td
%select{ :name => "firstlevel_id", :value => "#{@s.firstlevel_id}" }
- Firstlevel.find(:all).each do |f|
%option{ :value => "#{f.id}" } #{f.title}
但是即使firstlevel\u id
已经是选项列表中的一个id,它也不会显示为选中
选择标记并控制所选值
选项上设置selected
属性
标记:
%select{:name => "firstlevel_id"}
- FirstLevel.find(:all).each do |f|
%option{:value => f.id, :selected => f.id == @s.firstlevel_id} #{f.title}
我更喜欢第一种解决方案。您应该使用select_标记生成html,并使用select选项生成html:
select_tag :firstlevel_id, options_for_select( Firstlevel.all.map{|l| [l.title, l.id] }, @s.try(:firstlevel_id) )