Рельсы I18n: дни недели - PullRequest
0 голосов
/ 29 января 2011

У меня есть модель практики, которая хранит время начала, окончания и дня.

Эта информация (как и остальная часть сайта) должна отображаться в 3 разных языки.

Start_time и end_time оба хранятся как типы Datetime в БД.

День еще не реализован, но будет отображаться в виде поля выбора. Я видел, как люди предлагают массив констант и хранят его как целое число в БД. Хотя это кажется разумным, у меня возникают проблемы с представлением, что он хорошо работает с разными языками (используя I18n или Globalize2).

Какой самый чистый способ реализовать это, чтобы он хорошо работал на разных языках?

Ответы [ 2 ]

1 голос
/ 29 января 2011

Я не вижу веской причины хранить дни недели в базе данных; Я был бы удивлен, если такие имена изменятся, и мы говорим о 7 * 3 строках, то есть небольшом количестве данных для обработки для вашего приложения.

i18n - это путь. Вы можете просмотреть этот репозиторий , чтобы найти day_names, уже переведенный на разные языки.

0 голосов
/ 29 января 2011

Если вы не можете сохранить или рассчитать день недели из начального и конечного объектов DateTime, то я бы порекомендовал использовать ENUM в базе данных - это приведет к тому, что данные будут сохранены какцелое число - которое занимает меньше места и его легче индексировать; преобразование в строковые типы выполняется автоматически для вас, чтобы вы могли запрашивать и вставлять строки, но фактические значения базы данных являются целыми числами.

Определенно выполнитене храните эти значения в виде строк, с ними сложнее иметь дело, и они занимают больше места.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...