Я пытаюсь определить, сколько часов собраний проводит конкретная Организация, но это не так просто, как кажется, из-за определенных сложностей в отношениях.
class Meeting < ActiveRecord::Base
has_and_belongs_to_many :people
end
class Person < ActiveRecord::Base
has_any_belongs_to_many :meetings
has_and_belongs_to_many :positions
end
class Position < ActiveRecord::Base
has_and_belongs_to_many :people # b/c over time more than one person
may hold this position over time
belongs_to :organization
end
class Organization < ActiveRecord::Base
has_many :positions
end
Поскольку люди могут менять позиции (и организации) с течением времени, когда кто-то посещает собрание, мне нужно также записать свою позицию в это время, чтобы подсчет был точным.*
В нынешнем виде, поскольку таблица соединения HATBM обрабатывается неявно (meeting_people), я не могу отслеживать позицию.Как мне добавить позицию в этот микс и как лучше написать запрос, чтобы получить общее количество часов собрания для каждой организации?
Заранее благодарим за любую помощь или совет, который вы можете предоставить!