В классе автомобиля определяют полиморфную интерфейс
belongs_to :car_type(interface name change according to you), polymorphic: true
В классе автопроизводителей
has_many :cars, as: :car_type
В классе Carmodel
has_many :cars, as: :car_type
В региональном классе
has_many :cars, as: :car_type
А всякий раз, когда вы храните записи в столе автомобилей .... храните тип объекта, который будет (автопроизводитель, Carmodel, Region) и ID