Пользовательские параметры не принимают данные в виде массива в рельсах с помощью выпадающего списка boostrap multi select - PullRequest
0 голосов
/ 28 декабря 2018

У меня есть пользовательская модель с различными атрибутами.Из них я использую раскрывающийся список начальной загрузки для получения нескольких выбранных значений для двух полей.Я не могу проанализировать эти два поля и получить их как параметры, которые содержат значения массива для нескольких выбранных параметров и сохраняют то же самое, что и значение массива, в базу данных

Это моя модель пользователя

 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параметры вообще, что я ожидаю в массивах.Что я делаю неправильно?.

1 Ответ

0 голосов
/ 28 декабря 2018

Ладно, я понял решение Вот оно

<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 => [])

Это должно сделать трюк

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...