在选择标记中显示当前值

时间:2014-01-22 15:49:22

标签: ruby-on-rails forms select haml html-select

我的表格中有这个字段:

    %select{ :name => "name", :value => "#{@r.name}" }
      %option{ :value => "name1" } Name1
      %option{ :value => "name2" } Name2
      %option{ :value => "name3" } Name3

目前它始终显示第一个选项,无论当前值如何。如果有的话,我需要它来选择正确的值。

1 个答案:

答案 0 :(得分:3)

您可以使用Rails的帮助select_tagoptions_for_select来实现此目的:

- options = [ ['Name1', 'name1'], ['Name2', 'name2'], , ['Name3', 'name3'] ]
- selected_option_value = @r.name
= select_tag 'name', options_for_select(options, selected_option_value)

一些文档:


如果您仍然不想使用Rails的帮助程序并仅使用HAML,则在您的情况下:

%select{ :name => "name", :value => "#{@r.name}" }
  %option{ :value => "name1", :selected => @r.name == 'name1' ? 'selected' : '' } Name1
  %option{ :value => "name2", :selected => @r.name == 'name2' ? 'selected' : '' } Name2
  %option{ :value => "name3", :selected => @r.name == 'name3' ? 'selected' : '' } Name3
相关问题