我实际上需要高级 Ruby/Rails 开发人员的一些建议,了解保存has_and_belongs_to_many
关联的常见和正确方法是什么?
这就是我所做的,但对我来说感觉真的很脏,我真的不喜欢在我的应用程序中看到该代码:)
模型/公司.rb
class Company < ActiveRecord::Base
has_and_belongs_to_many :type_taxes
## Add Type taxes association
def insert_types_taxes( types_taxes )
self.type_taxes.clear
self.type_taxes << types_taxes
end
end
模型/taxe.rb
class Taxes < ActiveRecord::Base
has_and_belongs_to_many :societes
end
控制器/societes_controller
class SocietesController < ApplicationController
# I use basically the same code for the update method
def create
params[:societe][:type_taxes_ids] ||= []
@societe = Societe.new( societe_params )
@societe.user_id = current_user.id
if @societe.save
add_types_taxes_to_societe
redirect_to societes_path
else
load_resources
render :new
end
end
private
def add_types_taxes_to_societe
types_taxes = TypeTaxe.find params[:societe][:type_taxe_ids]
@societe.insert_types_taxes types_taxes
end
end
当这项工作正常时,我真的觉得很脏。它也没有告诉我关联创建是否成功创建。
非常欢迎任何建议来提高我的技能和我的代码:)
谢谢