html - 提交页面后,在 ruby​​ on rails 的选择框中显示所选值

标签 html ruby-on-rails

在我看来,我有以下内容来显示其中包含国家/地区的选择框:

@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/

相关文章:

javascript - 如何使用 jquery 将关注按钮从关注更改为关注

jquery - css居中和调整旋转文本的大小

javascript - 使用 HTML 5 和 Canvas 构建图像编辑器

ruby-on-rails - 如何在发布新的 Ruby 或 Rails 版本时收到通知?

ruby-on-rails - Rails 发条不运行代码

javascript - 如何为 IE 定义不同的填充值?

html - www.xyz.com 和 xyz.com 之间的区别以及如何重定向 .htaccess

ruby-on-rails - ActiveModel::MissingAttributeError: 无法使用 FactoryGirl 写入未知属性 `ad_id'

css - Rails 不再编译和提供我的 application.scss 文件

ruby-on-rails - attr_accessor 和 attr_reader 在 Rails 4 中不起作用