Я пытаюсь описать идею о том, что группа программных служб имеет одинаковые зависимости, но не все службы имеют одну и ту же версию данной зависимости.
Рассмотрим следующие модели:
class Service < ApplicationRecord
has_many :service_dependencies
has_many :dependencies, through: :service_dependencies
end
class ServiceDependency < ApplicationRecord
belongs_to :service
belongs_to :dependency
end
class Dependency < ApplicationRecord
has_many :service_dependencies
has_many :services, through: :service_dependencies
has_many :versions, foreign_key: 'dependency_id', class_name: 'DependencyVersion'
end
class DependencyVersion < ApplicationRecord
belongs_to :dependency
end
В то время как service
может иметь много dependencies
, а заданная зависимость может иметь много versions
, любая служба использует одну версию зависимостиза один раз.
Как я могу выразить это отношение, чтобы я мог установить, какую версию зависимости использует служба в настоящее время?
Я подумал, что могу сохранить текущую версию в service_dependencies
стол, но это похоже на неправильное решение.
Спасибо