Rails新手在这里。
虽然将模型从Django移植到Rails,但我很难找到最佳关系......
我想实施的模型:
是否可以与has_many建立关联:通过或更好地使用has_and_belongs_to?
我认为:通过关联会很复杂,因为给定模型存在两个以上的交叉关系。
我可以看到两种做关系的方式:一种是大型连接模型,或者是模型之间所有当前多对多关系的小连接模型。
class Role
has_many :relations
has_many :users, through: :relations
has_many :teams, through: :relations
end
class User
has_many :relations
has_many :roles, through: :relations
has_many :software, through: :relations
end
class Team
has_many :relations
has_many :software, through: :relations
end
class Software
has_many :relations
has_many :users, through: :relations
has_one :team
end
class Relation
belongs_to :user
belongs_to :role
belongs_to :teams
belongs_to :software
end
答案 0 :(得分:1)
has_many :through
为您提供了具有全功能连接模型类的额外灵活性。如果您想要建立关系的某些方面,除了两个事物彼此关联的简单事实之外,这是必需的。
据我所知,has_many :through
没有任何缺点,除了你的代码库可能是一两行,还有很多优点。我会一直使用has_many: through
复杂的关联:在进行任何编码之前,用纸和铅笔(或者如果你愿意的话,使用UML绘图应用程序)将它们全部绘制出来。如果你以前有一个工作的django应用程序,它应该足够简单地映射架构:它们都是对象关系系统。