Ruby on rails RoR有很多,属于很多
我有两个数据库表,分别是域和类别 域可以有许多类别,类别可以有许多域 这两个模型都是使用has\u和\u属于\u many设置的 从逻辑上讲,当一个类别与一个域相关联时,域与一个类别相关联。然而Ruby on rails RoR有很多,属于很多,ruby-on-rails,has-and-belongs-to-many,Ruby On Rails,Has And Belongs To Many,我有两个数据库表,分别是域和类别 域可以有许多类别,类别可以有许多域 这两个模型都是使用has\u和\u属于\u many设置的 从逻辑上讲,当一个类别与一个域相关联时,域与一个类别相关联。然而 irb(main):062:0> domain.categories.any? => false irb(main):063:0> category.domains.any? => true 我错过了什么 HABTM 对于后代,您需要进行以下设置: #app/models/do
irb(main):062:0> domain.categories.any?
=> false
irb(main):063:0> category.domains.any?
=> true
我错过了什么 HABTM
对于后代,您需要进行以下设置:
#app/models/domain.rb
class Domain < ActiveRecord::Base
has_and_belongs_to_many :categories
end
#app/models/category.rb
class Category < ActiveRecord::Base
has_and_belongs_to_many :domains
end
#table - categories_domains - category_id | domain_id
#app/models/domain.rb
类域
这为您提供了调用相应对象上的domain.categories
或category.domains
方法所需的相对关联
关联 为了向您强调这个想法(因为您是新手),让我详细介绍一下在Rails中的重要性 Rails是一个,并且是。如果你开始的话,这并不意味着什么,但随着你的进步,这将变得非常重要 Rails面向对象的特性意味着,每当您想要添加一项功能时,您确实需要围绕对象工作。根据MVC,您的对象是在
模型
中构建的(这就是为什么您可以调用模型.new
等)
当您关联对象(模型)时,您基本上告诉Rails(通过),这两个对象是关联的。AR被称为ORM,这意味着它提供了一种更方便地调用关联数据的方法:
--
这意味着,如果您想将两个对象(模型)关联在一起,您基本上需要在各自的模型中定义这两个关联,这将在应用程序的其他部分提供功能您可以发布模型中的关系吗?您的迁移可能也很有用。您确定要检查的域属于某个类别吗?能否将
domain.category\u id
、category.domain\u id
、domain.id
和category.id
的输出放在下面?我深表歉意。我正在学习RoR,并饱受信息过载之苦。域和类别不相关。