【问题标题】:pass multiple values using select_tag where only a single value is displayed Ruby on Rails form_tag使用 select_tag 传递多个值,其中仅显示一个值 Ruby on Rails form_tag
【发布时间】:2014-12-10 19:39:30
【问题描述】:

我有一个名为 @records_hash 的哈希,它由 3 个数组组成:@records_hash["EVENT_DESCR"]、@records_hash["EVENT_ID"] 和 @records_hash["PROCESSS_ID"]

我希望用户能够从下拉列表中选择他们想要查看的事件并将相应的值传递到下一页。

我希望用户在使用下拉菜单时看到 EVENT_DESCR,但我想将 EVENT_ID 和 PROCESS_ID 传递到下一页。

目前,我有一个如下所示的表单:

<%= form_tag({:controller => 'options', :action => 'sort', :type => 'event', :page => 1}, :method => 'get') do %>
    <%= select_tag 'event_descr', options_for_select(@records_hash["EVENT_DESCR"]) %>
    <%= submit_tag "Submit" %>
<% end %>

此表单以下拉格式成功列出 EVENT_DESCR,并将 EVENT_DESCR 发送到下一页。

我将如何发送 EVENT_ID 和 PROCESS_ID?

【问题讨论】:

    标签: ruby-on-rails ruby forms hashmap html-select


    【解决方案1】:

    我想这就是你想要的:

    # the values are whatever you want to pass. I'm just doing an array of arrays with EVENT_ID first.
    <% values = @records_hash["EVENT_ID"].zip(@records_hash["PROCESSS_ID"]) %>
    <% opts = options_for_select(@records_hash["EVENT_DESCR"].zip(values)) %>
    <%= select_tag 'event_descr', opts %>
    

    【讨论】:

    • 这就是我想要的
    【解决方案2】:

    您可以尝试options_from_collection_for_select - 您可能需要将哈希值修改为对象集合,但这会使您的代码更具可读性。可能是一个类XXEvent,具有iddescrprocess_id 作为属性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-11-15
      • 2014-02-07
      • 2012-06-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多