2015-03-14 2 views
0

Каков наилучший способ хранения набора констант, таких как названия стран, валюты, списки городов в приложении rails?Сохранение постоянных данных в рельсах

Я имел в виду иметь модель под названием Константы, которая хранит все эти данные и другие модели ConstantMaps, что является полиморфным, которая отображает константы различных других моделей

Является ли это правильный подход?

ответ

1

Лучше иметь больше моделей с семантическими именами, каждый из которых имеет методы, которые отражают то, что модель должна знать о себе. Ваши модели должны группировать связанные данные. Например, у вас может быть модель местоположения с такими типами, как Location # страна, которая возвращает названия стран и город # города, который возвращает названия городов. Валютой будет его собственная модель, потому что валюта Location # не имеет смысла, когда вы думаете о том, что вам нужно будет указать местоположение о его местоположении.

Имея одну модель под названием Constants и другую модель, единственной целью которой является сопоставление, является очень плохая идея, потому что она не говорит вам, что находится в модели, и еще хуже, но она будет содержать несвязанные данные. Будет сложнее отслеживать ошибки и расширять возможности в будущем.

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

0

Если этот список требует частого добавления/изменения, подумайте о его сохранении в своей базе данных. В противном случае это часть вашего кода, для каждого изменения требуется новое развертывание.

Смежные вопросы