Ruby on rails 在Rails中使用哪种关联?
我在Ruby on rails 在Rails中使用哪种关联?,ruby-on-rails,ruby,Ruby On Rails,Ruby,我在Rails中创建了user和project模型。我必须执行一个关联,该关联将创建一个关系,如下所述: 1 User has many Projects 1 project has many Users 我如何在Rails中为相同的内容创建关联?我需要一些关于rails中哪种类型的关联将帮助我实现这一点的帮助 你可以使用has_和_belish_to_many或has_many to_many。这是我提供的链接,可以帮助你找出它们之间的区别,以及哪一个对你有好处。这是给你的视频教程。还有一
Rails
中创建了user
和project
模型。我必须执行一个关联,该关联将创建一个关系,如下所述:
1 User has many Projects
1 project has many Users
我如何在
Rails
中为相同的内容创建关联?我需要一些关于rails中哪种类型的关联将帮助我实现这一点的帮助 你可以使用has_和_belish_to_many或has_many to_many。这是我提供的链接,可以帮助你找出它们之间的区别,以及哪一个对你有好处。这是给你的视频教程。还有一个很好的链接。在你的情况下,你需要has和belishing to many你基本上是想拥有一个多对多关系
在Rails中,您可以基于两个关联概念来实现这一点:
(民政事务局)
注意:
如果您不关心这两个表的连接方式(关系模型),也不想对连接数据进行任何逻辑/验证,那么应该使用HABTM
。它只会将外键保存在一个表中,并根据该表获取数据
如果您想在Project
和User
之间建立一个中间模型,则需要has\u many:to
,该模型可以称为UserProject
模型。这样,您的关联可以如下所示:
用户模型:
项目模型:
用户项目模型:
您正在描述一种多对多关系类型。Rails允许您使用has\u many:through
和has\u和\u allown\u to \u many
指令创建此关系。你可以了解其中的区别
简而言之,has\u many:to
允许您在中间表中添加额外的列,has\u和\u属于\u many
不允许。如果您不需要在中间表中有额外的属性,那么使用就有\u和\u属于\u许多
语法。您可以随时通过以后的
更改为has\u many:
class Project < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :projects
end
class项目
您可能希望在项目和用户之间使用多对多关系。除此之外,您可能希望访问rails官方指南,该指南详细描述了所有这些关系
在这种情况下,最好的办法是,
在user.rb模型文件中:
has_and_belongs_to_many :projects
has_and_belongs_to_many :users
在project.rb模型文件中:
has_and_belongs_to_many :projects
has_and_belongs_to_many :users
has_and_belongs_to_many :users