提交页面后,在轨道上的选择框ruby中显示所选值

时间:2010-02-19 10:26:03

标签: html ruby-on-rails

我在视图中有以下内容显示包含国家/地区的选择框:

@countries = {'United States' => 'US', 'France' => 'FR'} 
<%= select_tag 'countries', 
            options_for_select(@countries.to_a) %>

它工作正常。现在,在提交表单后出现错误的情况下,文本字段中先前输入的所有值都会再次显示(因此无需重新输入),但选择框将重置为其默认值。

任何想法我应该包括哪个参数,以便在发生错误时,选择框中的值保持不变。

1 个答案:

答案 0 :(得分:1)

您在哪里存储此值?如果将其分配给某个模型,那么您的表单应如下所示:

<% form_for @my_object do |f| %>
  # some fields
  <%= f.select 'country', options_for_select(@countries.to_a) %>
  # ...
<% end %>

country应该是您在模型中存储国家/地区的字段名称。

如果你想用select_tag(就像你的例子)那样做,那么你应该传递给options_for_select另一个参数:

select_tag 'countries', options_for_select(@countries.to_a, params[:countries])

params[:countries]应存储当前所选国家/地区。