我尝试使用多对多关联进行复选框。 我有树模型 公司:
class Empresa < ActiveRecord::Base
has_many :empresa_pagamento
has_many :formas_pagamentos, :through => :empresa_pagamento
has_one :tipo_restaurante
has_many :produtos
end
Forma Pagamento
class FormaPagamento < ActiveRecord::Base
has_many :empresa_pagamento
has_many :empresas, :through => :empresa_pagamento
end
Empresa Pagamento
class EmpresaPagamento < ActiveRecord::Base
belongs_to :empresa
belongs_to :forma_pagamento
end
在我的empresa_controller上,我有我的参数
def empresa_params
params.require(:empresa).permit(:nome, :descricao, :cnpj, :razao_social,:formas_pagamentos, :tipo_restaurante)
end
当我尝试保存时,我会这样做:
def create
@empresa = Empresa.new(empresa_params)
respond_to do |format|
if @empresa.save
@empresa.formas_pagamentos.each do |forma_pagamento|
empresa_pagamento = EmpresaPagamento.new
empresa_pagamento.forma_pagamento = FormaPagamento.find(forma_pagamento)
empresa_pagamento.empresa = @empresa
empresa_pagamento.save
end
format.html { redirect_to @empresa, notice: 'Empresa was successfully created.' }
format.json { render :show, status: :created, location: @empresa }
else
format.html { render :new }
format.json { render json: @empresa.errors, status: :unprocessable_entity }
end
end
end
在我的_form上我有
<div class="field">
<%= f.label :formas_pagamentos %><br>
<%= f.collection_select(:formas_pagamentos, FormaPagamento.all, :id, :nome,{:prompt => "Selecione"}, {:multiple => true}) %>
</div>