Я не знаю, как лучше, но я поделюсь тем, что я сделал в одном из моих проектов:
Я решил расширить ActiveModel::Validator
и создать свою собственную проверку для моих полиморфных ассоциаций
В вашем случае
class CarValidator < ActiveModel::Validator
def validate_vehicle_type(record)
# where did you save the veicle type associatuon?
unless VehicleType.find_by(display_name: record.veicle_type).exists?
record.errors.add :veicle_type, "This veicle type does not exist"
end
end
затем validates with CarValidator