【问题标题】:After the page is submited show the selected value in the select box ruby on rails提交页面后,在选择框中显示所选值 ruby​​ on rails
【发布时间】:2010-02-19 10:26:02
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: html ruby-on-rails


    【解决方案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] 应该存储当前选择的国家/地区。

    【讨论】:

    • 谢谢@klew,这正是我所需要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-14
    • 1970-01-01
    • 2011-05-25
    • 2023-03-28
    • 2010-10-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多