[英]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.