繁体   English   中英

用户参数不使用Boostrap Multi Select下拉列表将数据作为Rails中的数组

[英]User Params not taking data as an array in rails using boostrap multi select dropdown

我有一个具有各种属性的用户模型。 他们中我正在使用bootstrap多选下拉列表来获取两个字段的多选值。 我无法解析这两个字段并以参数形式接收它们,它们都保存了多选选项的数组值并将其作为数组值存储到数据库中

这是我的用户模型

 class User < ApplicationRecord
   serialize :type_of_brand, Array
   serialize :amenities_provided, Array
 end

用户视图的_form.html.erb:

<div class="field"> 1.
  <%= form.label :name %> :
  <%= form.text_field :name, id: :user_name %>
</div>

<div class="field"> 2.
  <%= form.label :phone %> :
  <%= form.text_field :phone, id: :user_phone %>
</div>

<div class="field"> 3.
  <%= form.label :email %> :
  <%= form.text_field :email, id: :user_email %>
</div>

<div class="field"> 9.
  <label> Types of Packaging Water Brand Sold </label><br/>
  <select id="type_of_brand" multiple="multiple" 
  name="type_of_brand[]">
    <option value="freezer">Bisleri</option>
    <option value="delivery">Aquafina</option>
    <option value="freezer and delivery">Kinley</option>
    <option value="Incentives">Bindu</option>
  </select>
</div>

<div class="field"> 17.
  <label> Amenities provided </label><br/>
  <select id="amenities_provided" multiple="multiple" 
  name="amenities_provided[]">
    <option value="freezer">Freezer</option>
    <option value="delivery">Delivery</option>
    <option value="freezer and delivery">Freezer and Delivery</option>
    <option value="Incentives">Incentives</option>
  </select>
</div>

<div class="field"> 18.
  <%= form.label 
  :number_of_deliveries_done_by_your_distributor_in_a_month %> :
  <%= form.number_field :total_delivered_by_distributor, id: 
  :user_total_delivered_by_distributor %>
</div>

<div class="actions">
  <%= form.submit %>
</div>

<div class="actions">
  <input class="btn btn-danger" type="reset" value="Reset">
</div>

<% end %>
</div>

<script type="text/javascript">
  $(document).ready(function() {
    $('#type_of_brand, #amenities_provided').multiselect();
  });
</script>

我得到以下参数

{"name"=>"Mahesh", "phone"=>"9008849042", 
"email"=>"Alexander9@teamyogi.com"} 
permitted: true>

在这里,我根本无法获得数组期望的type_of_brand和Facilities_provided参数。 我究竟做错了什么?。

好吧,我想出了解决方案

<div class="field"> 9.
  <label> Types of Packaging Water Brand Sold </label><br/>
  <select id="type_of_brand" multiple="multiple" 
  name="user[type_of_brand][]">
    <option value="freezer">Bisleri</option>
    <option value="delivery">Aquafina</option>
    <option value="freezer and delivery">Kinley</option>
    <option value="Incentives">Bindu</option>
  </select>
</div>

<div class="field"> 17.
  <label> Amenities provided </label><br/>
    <select id="amenities_provided" multiple="multiple" 
    name="user[amenities_provided][]">
      <option value="freezer">Freezer</option>
      <option value="delivery">Delivery</option>
      <option value="freezer and delivery">Freezer and Delivery</option>
      <option value="Incentives">Incentives</option>
   </select>
</div>

还允许在用户控制器中加入强大的参数

params.require(:user).permit(:name, :phone, :email, :type_of_brand => [], 
:amenities_provided => [])

这应该够了吧

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM