Внешний интерфейс может быть страницей редактирования для комнаты, в которой перечислены все события в виде набора флажков.Затем вы можете отметить события, на которые эта комната может быть зарезервирована.
Обрабатывать это в модели комнаты немного сложнее.Некоторые люди рекомендуют использовать accepts_nested_attributes_for, но когда пользователи позже снимают флажки, это не приводит к автоматическому удалению отношения.
Метод accepts_nested_attributes_for имеет опцию для удаления записей, но вынуждает вас передавать в отдельную "_delete "параметр для каждой записи, которую вы хотите удалить.Это все хорошо, если вы хотите использовать javascript для добавления этого виртуального параметра «_delete» в форму после того, как кто-то снимает флажок, но если вы не хотите полагаться на javascript, он становится сложным.
Поэтому я принял решение отказаться от acceptpts_nested_attributes_for и просто накатить свое собственное решение, вероятно, похожее на то, как Райан Бейтс решил эту проблему до того, как существует acceptpts_nested_attributes_for.
Вместо публикации моего решения, вот ссылка на старый эпизод RailsCastкоторый объясняет, как обрабатывать вложенные модели в сложной форме:
http://railscasts.com/episodes/73-complex-forms-part-1
Если у кого-то еще есть новый подход к использованию accepts_nested_attributes_for с флажками в отношении has_many: through style, я бы хотелуслышать это.