我有4个模型,分别是Company
,Candidate
,Job
和Application
Company
has_many :candidates
has_many :jobs
Candidate
belongs_to :company
has_one :application
Jobs
belongs_to :company
has_many :applications
Application
belongs_to :candidate
belongs_to :job
我不确定Candidate
,Jobs
和Application
之间的关系是否正确。如果有人能提出一些改进建议,那就太好了。谢谢。
答案 0 :(得分:1)
你走在正确的轨道上。添加间接关联也可以让你查询层次结构:
class Company < ApplicationRecord
has_many :jobs
has_many :applications, through: :jobs
has_many :candidates, through: :applications
end
class Job < ApplicationRecord
belongs_to :company
has_many :applications
has_many :candidates, through: :applications
end
class Application < ApplicationRecord
belongs_to :candidate
belongs_to :job
has_one :company, through: :job
end
class Candidate < ApplicationRecord
has_many :applications
has_many :jobs, through: :applications
has_many :companies, through: :jobs
end
答案 1 :(得分:0)
我认为建立活跃记录协会的最简单方法是想象你在现实生活中的联想。在这种情况下,公司有几个工作,每个工作有几个应用程序,每个应用程序有一个候选人。
因此关系将是
for Company
has_many :jobs
for Job
belongs_to :company
has_many :applications
申请
belongs_to :job
has_one :candidate
候选人
belongs_to :application