我在user
中创建了project
和Rails
模型。我必须执行一个关联,创建一个如下所述的关系:
1 User has many Projects
1 project has many Users
如何在Rails
中创建相关关联?我需要一些帮助来帮助我实现这一目标中的哪种类型的关联。
答案 0 :(得分:2)
您正在描述多对多关系类型。 Rails允许您使用has_many :through
和has_and_belongs_to_many
指令创建此关系。您可以了解差异here。
很快,has_many :through
允许您在中间表中添加其他列,has_and_belongs_to_many
不会。如果您不需要在中间表中使用其他属性而不是使用has_and_belongs_to_many
语法。您以后可以随时更改为has_many :through
。
class Project < ActiveRecord::Base
has_and_belongs_to_many :users
end
class User < ActiveRecord::Base
has_and_belongs_to_many :projects
end
答案 1 :(得分:0)
你可以使用has_and_belongs_to_many或has_many。这是我提供的链接,它可以帮助你理清它们之间的区别,哪一个对你有好处。这是你的视频教程association。还有一个很好的链接link。在你的情况下,你需要拥有并属于许多
答案 2 :(得分:0)
您基本上试图建立many-to-many
关系。
在Rails中,您可以基于两个关联概念来执行此操作:
has_and_belongs_to_many(HABTM)
注意:强>
如果您不关心这两个表的连接方式(关系模型),并且您不希望对连接数据进行任何逻辑/验证,则应该有HABTM
。它只会将您的外键保存在表中,并根据该数据进行提取。
如果您希望在has_many :through
和Project
之间建立一个可以称为User
模型的中间模型,则需要UserProject
。这样您的关联可能如下所示:
用户模型:
has_many :user_projects
has_many :projects, through: :user_projects
项目模型:
has_many :user_projects
has_many :users, through: :user_projects
UserProject Model:
belongs_to :user
belongs_to :project
答案 3 :(得分:0)
您可能希望在项目和用户之间使用many to many
关系。最重要的是,你可能想访问rails官方指南,它非常详细地描述了所有这些关系。
答案 4 :(得分:0)
在这种情况下最好的办法是, 在您的user.rb模型文件中:
has_and_belongs_to_many :projects
并在您的project.rb模型文件中:
has_and_belongs_to_many :users