Лучше иметь больше моделей с семантическими именами, каждый из которых имеет методы, которые отражают то, что модель должна знать о себе. Ваши модели должны группировать связанные данные. Например, у вас может быть модель местоположения с такими типами, как Location # страна, которая возвращает названия стран и город # города, который возвращает названия городов. Валютой будет его собственная модель, потому что валюта Location # не имеет смысла, когда вы думаете о том, что вам нужно будет указать местоположение о его местоположении.
Имея одну модель под названием Constants и другую модель, единственной целью которой является сопоставление, является очень плохая идея, потому что она не говорит вам, что находится в модели, и еще хуже, но она будет содержать несвязанные данные. Будет сложнее отслеживать ошибки и расширять возможности в будущем.
Данные должны храниться в базе данных с таблицами, соответствующими названиям моделей. Методы модели запрашивают базу данных и возвращают ожидаемые данные. Если есть какая-то причина, по которой вы не можете или не хотите хранить постоянные данные в базе данных, каждый соответствующий класс модели может иметь хеш, хранящийся в переменной CONSTANT (например, CITY_LIST = {australia: ["sydney", "melbourne", "brisbane",...], brazil: ["san paulo", "rio de janeiro",...]}
и методы запрашивают эту переменную вместо базы данных.