class GestionnaireIsAssignToProcedure < ActiveRecord::Migration class AssignTo < ActiveRecord::Base belongs_to :gestionnaire belongs_to :procedure end class Gestionnaire < ActiveRecord::Base has_and_belongs_to_many :administrateurs has_many :procedures, through: :assign_to end class Administrateur < ActiveRecord::Base has_and_belongs_to_many :gestionnaires has_many :procedures end class Procedure < ActiveRecord::Base belongs_to :administrateur has_many :gestionnaires, through: :assign_to end def change create_table :assign_tos, id: false do |t| t.belongs_to :gestionnaire, index: true t.belongs_to :procedure, index: true end Administrateur.all.each do |administrateur| administrateur.gestionnaires.each do |gestionnaire| administrateur.procedures.each do |procedure| AssignTo.create gestionnaire: gestionnaire, procedure: procedure end end end end end