Почему бы не попробовать:
class Model1 < ActiveRecord::Base
has_many :model2s
has_many :model3s
end
class Model2 < ActiveRecord::Base
belongs_to :model1
has_many :model3s, :primary_key => :model1_id,
:foreign_key => :model1_id
end
class Model3 < ActiveRecord::Base
belongs_to :model1
has_many :model2s, :primary_key => :model1_id,
:foreign_key => :model1_id
end
Это будет иметь активное объединение записей model2 и model3 с помощью model1_id, полностью исключающее model1, и должно быть более эффективным.