Я пытаюсь реализовать что-то похожее на это ниже.Базовая настройка: Schedule
модель
class Schedule < ActiveRecord::Base
has_many :events
end
Модель Event
будет принадлежать Schedule
.События состоят из имени, даты и времени, продолжительности и Room
A Room
выбирается из списка выбора при создании события, все комнаты создаются заранее через интерфейс заполнения или администратора.Комната будет хранить информацию, такую как количество посадочных мест.
Я пытался найти способ реализации этого, который кажется правильным.Кажется, что решения варьируются между habtm или has_many: through, но я не вижу необходимости в таблице соединений для этой ситуации.Теоретически, Событие has_one :room
, но обратная связь не belongs_to :event
, так как Комната может использоваться для многих событий, для этого также требуется наличие внешнего ключа на столе комнат.
Я рассмотрелобрабатывая это вручную в модели, используя внешний ключ room_id в событии, я мог бы затем запросить соответствующий номер.Я думаю, что это сработает, поскольку в настоящее время я не вижу требования для нахождения всех событий с использованием комнаты.
class Event < ActiveRecord::Base
belongs_to :schedule
def room
Room.find(room_id)
end
end
Все, что я до сих пор делал в Rails, показалось "правильным", но все решения, которые я "мы придумали, что нет, и я чувствую, что что-то упустил;или, может быть, я просто жду этого дополнительного волшебства.Есть ли "Rails" способ сделать это?