[英]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.