我有以下型号:
供应商:存储供应商的详细信息
has_many :vendor_business_type, foreign_key: "vendor_id"
vendor_business_type:存储对供应商及其拥有的business_types的引用
belongs_to :vendor
business_type:存储业务类型
我正在创建一个新的/创建表单如下:
<%= form_for @vendor %>
<% BusinessType.where(:business_id=>"5").each do |business_type| %>
<%= check_box_tag "vendor[vendor_business_type_attributes][business_type_ids][]", business_type.id %>
<%= business_type.business_type_name %>
<% end %>
<%= submit_tag("Submit") %>
<% end %>
供应商#new
@vendor=Vendor.new()
@vendor.build_school
@vendor.vendor_business_type.build()
vendor_params
params.require(:vendor).permit(:vendor_business_type_attributes [:business_type_ids=> []])
这给了我一个错误:没有将Hash隐式转换为Integer
答案 0 :(得分:0)
尝试一下:
params.require(:vendor).permit(:vendor_business_type_attributes => { :business_type_ids => [] })
由于business_type_id在表单的括号内指定,因此它将成为哈希属性,而不是数组的一部分。