2010-02-19 55 views
2

我已经在我认为按照其显示与国家选择框选择的值:页面被submited后显示在选择框中Ruby on Rails的

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

它工作正常。现在,如果我在提交表单后出现错误,则以前输入的文本字段中的所有值都会再次显示(因此不需要重新输入),但选择框会重置为默认值。

任何想法我应该包括什么参数,以便在发生错误时选择框中的值保留。

回答

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]应该存储当前选择的国家。

+0

谢谢@klew,这是我所需要的。 – Adnan 2010-02-19 11:07:57