繁体   English   中英

Rails协会设计,has_many通过

[英]Rails association design, has_many through

我正在研究虚拟Rails应用程序; 作为我的编程技能自我教育的一部分。 我不确定Rails协会的概念,因为我不确定这是正确的方法。

在本练习中,我希望具有以下模型:
-用户
-项目
-团队

我想创建以下关联:- User有很多Project
- Project通过Team拥有许多User
- Team通过Project拥有许多User

这个想法是,一个用户可以创建一个项目并加入或邀请其他用户。 在保存项目之前,由于使用了before_create ,应用程序将与该User以及在项目创建过程中添加的其他用户一起创建一个新团队Project_Team

当然,我并不是在谈论模型依赖性,因为一旦设置了正确的关联,我将解决这一点。

我编写了以下代码,但如上所述无法使关联按预期工作:

class User < ActiveRecord::Base
  has_many :project
  has_many :team, through :project
end

class Project < ActiveRecord::Base
  has_one :team
  has_many :user, through :team
end

class Team < ActiveRecord::Base
  belongs_to :project
  has_many :user, through :project
end

非常感谢您将来提供的帮助(以及对上面“可能”糟糕的代码的容忍度)。

干杯

您必须对has_many关联进行复数处理,但必须将自己的belongs_to数保持为单数。 through后您也缺少冒号。 您的关联应为:

class User < ActiveRecord::Base
  has_many :projects
  has_many :teams, through: :projects
end

class Project < ActiveRecord::Base
  has_one :team
  has_many :users, through: :team
end

class Team < ActiveRecord::Base
  belongs_to :project
  has_many :users, through: :project
end

查看Rails指南以获取更多信息。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM