首页 > 解决方案 > 将数据传递给rails中的数组

问题描述

我有下面的下拉菜单。

<select class="form-control input-lg dm-recipients" id="recipients" name="recipients[]" multiple="multiple">
 <% if @di.size >= 1 and !@di.include?("data") %>
  <% @di.each do |d| %>
     <% @members.each do |user| %>    
         <% name = user['first'] + " " + user['last'] %>   
        <option value="<%= user["id"] %>"><%= name&.try(:strip) %></option> 
    <% end %>
   <% end %>
 <% end %>
</select>

在@di 对象中,我有字段调用接收者,它保存了接收者 ID 数组。我想预先选择具有这些收件人 ID 的选项。(d['recipients']) 为此,我必须使用下面的 javascript 代码来做我想做的事。

var element = document.getElementById('recipients');

// Set Values
 var values = ["d729c11b-e5fa-4787-bc89-4fad7c247e35"];
  for (var i = 0; i < element.options.length; i++) {
   element.options[i].selected = values.indexOf(element.options[i].value) >= 0;
 }

在这里,我传递了收件人 ID 用于测试目的。但我想将收件人数组传递给var 值

我对 Rails 很陌生,并尝试传递数组。但没有运气。有人可以帮我解决这个问题。

标签: javascriptarraysruby-on-rails

解决方案


如果我正确理解您的问题,我认为您想在 JS 中执行此操作没有正确的方法。

例如,您可以设置一个变量,该变量在数组中包含您想要的所有值,然后您可以collection_select使用该数组吗?

或者,也许您可​​以使用hidden_field您需要控制器中的参数的 a ?


推荐阅读