Ruby在select_tag中保存选定的选项

时间:2010-11-22 09:28:35

标签: ruby-on-rails forms

我目前有一个将2个参数传递给控制器​​的表单。我的问题是,每次我在select_tag表单中做出选择时,我希望在点击提交标记后保留选项。这样,用户就知道他或她刚刚选择了什么。我可以使用:selected =>“true”,但这只是默认值而不是提交的值。

<form name="filter" action="" style="display:inline" >
  <label for="filter">Filter by Name or Description: </label>
    <%= text_field_tag "query", params['query'] %>
    <label for="status">Filter by Status:</label>
    <%= select_tag(:sortstatus,
                   '<option value="empty">Show All</option>,
                   <option value="0">Applying</option>,
                   <option value="3">Suspended</option>,
                   <option value="4">Pending</option>') %>
    <%= submit_tag 'Search' %>
</form>

这是控制器,它将更改空值以使用我的表

  def sort_status
    if params[:sortstatus] == "empty"
             @statusorder = ""
    else @statusorder = params[:sortstatus]
    end
  end

到目前为止,Google尚无法找到任何解决方案。

1 个答案:

答案 0 :(得分:2)

了解如何使用options_for_select生成options代码。它允许您指定要选择的条目。 e.g。

<%= select_tag(:sortstatus, options_for_select([['Show All', 'empty'],
  ['Applying', '0'],
  ['Suspended', '3'],
  ['Pending', '4']], params[:sortstatus]) %>

这会将所选项目设置为当前值params[:sortstatus]