簡體   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