【问题标题】:Rails Search form Keep values after submission of drop downRails 搜索表单在提交下拉列表后保留值
【发布时间】:2018-03-30 23:23:46
【问题描述】:

您好,我有一个如下所示的搜索表单。我试图让下拉框保留提交时选择的值。

 <%= search_form_for @search do |f| %>
<th><%= f.label :model_eq, "Search By Model" %>
<%= f.select :model_eq, options_for_select([["ALL"],
    ['Gender:Condition'],
    ['Naive:Stage'],['Race:Condition']],:selected => params[:model_eq]) %></th>
<%= f.submit "Search" , :name => nil%>
<% end %>

我想添加

:selected => params[:model_eq]

会保留选定的值,但不会。我也试过了

:selected => params[:model]

但这也行不通。

【问题讨论】:

  • 表单提交后页面是否重新加载,然后再次加载时,您希望下拉列表已经具有上次提交的选定值?
  • 是的,没错

标签: ruby-on-rails dropdown ransack


【解决方案1】:

为此,您应该改用params[:q][:model_eq]

<%= f.select :model_eq, options_for_select([], :selected => params[:q][:model_eq]) %>

【讨论】:

  • 您确定params[:model_eq] 有价值吗?你能给我看看 HTML 输出吗?
  • :model 是我正在搜索的字段:model_eq 基于 options_for_select([])。我的搜索功能工作正常,所以我假设它有一个值。要我粘贴生成的 HTML 源代码吗?
  • 嗨@Ahk86,为了获得价值,我认为我们必须像这样访问:params[:q][:model_eq]。请看看你的params
  • 嗨@fongfan999 我刚试过这个,它奏效了。不过必须把它放在括号内。谢谢!
  • 我很高兴听到这个消息 :)