在我看来,我有以下内容来显示其中包含国家/地区的选择框:
@countries = {'United States' => 'US', 'France' => 'FR'}
<%= select_tag 'countries',
options_for_select(@countries.to_a) %>
它工作正常。现在,如果我在提交表单后出现错误,之前输入的文本字段中的所有值都会再次显示(因此无需重新输入),但选择框会重置为其默认值。
任何想法我应该包括什么参数,以便在发生错误时选择框中的值保持不变。
最佳答案
你把这个值存储在哪里?如果它被分配给某个模型,那么您的表单应该如下所示:
<% 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]
应该存储当前选择的国家/地区。
关于html - 提交页面后,在 ruby on rails 的选择框中显示所选值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2295544/