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