导轨与附加上下文嵌套的has_many

问题描述 投票:0回答:1

我想描述的是一组软件服务有着相似的依赖性但不是所有的服务都是相同版本的一个给定的依赖关系的想法。

请考虑以下型号:

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表,但感觉就像错误的解决方案。

谢谢

ruby-on-rails activerecord has-many-through
1个回答
1
投票

我想我会添加一些像

class Configuration < AR
  belongs_to :service
  belongs_to :dependency
  belongs_to :dependency_version
end

是的,你会被复制信息,但似乎这将是有意义的。可能性的实例。

© www.soinside.com 2019 - 2024. All rights reserved.