Ruby on Rails - Как представить "has_many" с перечислениями? - PullRequest
3 голосов
/ 11 марта 2012

Какое лучшее решение в приложении Rails 3.2 для представления что-то вроде этого:

appointment = Appointment.first
appointment.days_of_the_week = [Monday, Friday]

Ответы [ 2 ]

2 голосов
/ 11 марта 2012

Вы можете взглянуть на Embedded Association RailsCast, где Райан Бейтс объясняет, как использовать битовые маски, чтобы избежать использования другой таблицы, я думаю, что это может быть хорошей идеей в этом случае.

0 голосов
/ 11 марта 2012

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

С перечисленными значениями я бы создал это отношение:

has_many :recurrent_occurrences

И я бы поставил там два столбца: appointment_id и числовой эквивалент дня недели.

Если вы используете базу данных noSQL, такую ​​как mongoDB, вы можете добавлять дни недели в виде массива или встраивать в запись, поэтому дополнительная таблица не требуется.

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