【问题标题】:Ruby saving selected choice in select_tagRuby 在 select_tag 中保存选定的选项
【发布时间】:2010-11-22 09:28:34
【问题描述】:

我目前有一个表单,可以将 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 中还没有找到任何解决方案。

【问题讨论】:

    标签: ruby-on-rails forms


    【解决方案1】:

    看看使用options_for_select 来生成你的options 标签。它允许您指定要选择的条目。例如

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

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

    【讨论】:

    • 我尝试了您的建议,但发生的情况是 Ruby 会保存该值,而不是该值的名称。确实很奇怪。之后我让 Controller 更改了我的值。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-08-18
    • 2020-10-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多