Rails has_many和belongs_to复选框

时间:2014-12-25 16:59:41

标签: ruby-on-rails has-many

我有以下型号:

供应商:存储供应商的详细信息

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

1 个答案:

答案 0 :(得分:0)

尝试一下:

 params.require(:vendor).permit(:vendor_business_type_attributes => { :business_type_ids => [] })

由于business_type_id在表单的括号内指定,因此它将成为哈希属性,而不是数组的一部分。