簡體   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