首页 > 解决方案 > 如何在rails的同一个表中创建多对多

问题描述

我只想在 Rails 中创建一个表(域:包含域),其中包含各种字段:ID、名称(它包含域和子域)和 TLD(顶级域)。例如:account.referal.com,在此帐户和推荐人中,将作为单独的值存储在名称中,com 将存储在 TLD 字段中。域和子域应该在同一个表中具有多对多关系,并且应该根据该关系从表中形成一个 URL。

ask.facebook.com: ask => 1 facebook => 1

Domains Table
 ID
 Name
 TLD
Domain Relationship
 Parent.      Child.
 Domain Key.  Domain Key.
 1            1

通过引用 id 和 tld 将在未来创建一个 url。

标签: ruby-on-railsrubyassociationsrails-activerecord

解决方案


您需要添加另一个表(多对多)来保存域表的关系:

Class DomainChildren
      belongs_to :domain
      belongs_to :domain_child, class_name: 'Domain'
end


Class Domain
     has_many :domain_children     
End

推荐阅读