Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/399.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Rails:Selectize multiselect仅提交最后一个选择_Javascript_Jquery_Ruby On Rails_Forms_Selectize.js - Fatal编程技术网

Javascript Rails:Selectize multiselect仅提交最后一个选择

Javascript Rails:Selectize multiselect仅提交最后一个选择,javascript,jquery,ruby-on-rails,forms,selectize.js,Javascript,Jquery,Ruby On Rails,Forms,Selectize.js,我有一个表单来创建一个新用户。我正在尝试使用gem selectize rails来允许添加多个相关用户的选项: views/users/new.html.erb <%= form_for @user, :url => users_path do |f| %> <select name="users" id='select-user'> <option value="">Select at least one user</option&

我有一个表单来创建一个新用户。我正在尝试使用
gem selectize rails
来允许添加多个相关用户的选项:

views/users/new.html.erb

<%= form_for @user, :url => users_path do |f| %>
  <select name="users" id='select-user'>
    <option value="">Select at least one user</option>
    <% User.all.each do |user| %>
      <option value="<%= user.name %>"><%= user.name %></option>
    <% end %>
  </select>
    <script type="text/javascript">
      var select = $('#select-user').selectize({
          persist: false,
          maxItems: 3,
          create: false,
          valueField: 'name',
          labelField: 'name',
          searchField: ['name'],
          render: {
              item: function(item, escape) {
                  return '<div>' +
                      (item.name ? '<span class="select-name">' + escape(item.name) + ',</span>' : '') +
                  '</div>';
              },
              option: function(item, escape) {
                  var label = item.name;
                  return '<div>' +
                      '<span class="select-label">' + escape(label) + '</span>' +
                  '</div>';
              }
          },
          preload: false,
          load: function(query, callback) {} 
      });
    </script>
  <%= f.submit "Submit", class: "btn btn-primary" %>
<% end %>
  def new
      @user = User.new
    end

    def create
      @user = User.new(user_params)
      if @user.save
        redirect_to root_path
      else
        redirect_to new_user_path
      end
    end

    private

      def user_params
        params.require(:user).permit(:name, :users)
      end
new.html.erb
上,代码运行良好:我最多可以添加三个用户。但是当我提交它时,
params[“users”]
只包含我添加的最后一个用户,不管我尝试添加多少。有人知道为什么会这样吗?

改变:

<select name="users" id='select-user'>


这应该使rails期望从select中获得多个值

可以使用rails选择辅助程序重写整个选择部分

<select name="users" id='select-user'>
  <option value="">Select at least one user</option>
  <% User.all.each do |user| %>
    <option value="<%= user.name %>"><%= user.name %></option>
  <% end %>
</select>

至少选择一个用户
变成

<%= select :user, options_for_collection_for_select(User.all, :name, :name),
  { prompt: "Please select.." },
  { multiple: true } %>

有关更多详细信息,请参阅和。

更改:

<select name="users" id='select-user'>


这应该使rails期望从select中获得多个值

可以使用rails选择辅助程序重写整个选择部分

<select name="users" id='select-user'>
  <option value="">Select at least one user</option>
  <% User.all.each do |user| %>
    <option value="<%= user.name %>"><%= user.name %></option>
  <% end %>
</select>

至少选择一个用户
变成

<%= select :user, options_for_collection_for_select(User.all, :name, :name),
  { prompt: "Please select.." },
  { multiple: true } %>

有关更多详细信息,请参阅和