Мне действительно нужен совет от опытных разработчиков Ruby/Rails о том, что является общим и правильным способом сохранить ассоциацию has_and_belongs_to_many
?Как правильно сэкономить отношения HABTM на Rails
Вот что я сделал, но мне он чувствует себя очень грязно, и я действительно не хотел бы видеть, что код в моем приложении :)
модели/company.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_control Лер
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
Когда эта работа хорошо, это действительно чувствует себя грязным мне. Это также не говорит мне, было ли создание ассоциаций успешным или нет.
Любые предложения более чем желателен, чтобы улучшить свои навыки и свой код :)
Благодарности