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,它也不会显示为选中

  • 您可以使用helper创建
    选择
    标记并控制所选值
  • 您还可以在适当的
    选项上设置
    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) )