我在为医生建立我的Active Record Associations时遇到一些麻烦 - >患者关系。
医生可以为患者创建评估。但在他们创建评估之前,他们必须选择一个模板(对于受伤类型)。模板has_many:问题,问题has_many:答案。
因此模型包括:用户,患者,评估,模板,问题,答案。
用户 - >患者关系非常简单,但我在模板,评估,问题和答案方面遇到了麻烦。我对'has_many:through'感到很困惑。我希望能够调用Template.questions来获取给定模板的问题列表,但也能够调用Assessment.questions(而不是Assessment.template.questions)。
然后我可以通过Assessment.questions过滤来获得答案。
以下是我目前的模特协会。目前的设置不允许我调用Assessment.questions(我认为这将由has_many:questions,:through =>:模板处理)。
为了调用Assessment.questions,我需要更改什么?同时接受有关架构的任何其他反馈。
感谢
document.addEventListener("DOMContentLoaded")
答案 0 :(得分:1)
就个人而言,我会这样做。我可能无法完全理解你的目标,但我认为我做到了:
class Doctor < ActiveRecord::Base
has_many :assessments
has_many :patients, :through => :assessments
end
class Patient < ActiveRecord::Base
has_many :assessments
has_many :doctors, :through => :assessments
end
class Assessment < ActiveRecord::Base
has_many :templates
belongs_to :patient
belongs_to :doctor
end
class Template < ActiveRecord::Base
has_many :questions
belongs_to :assessment
end
class Question < ActiveRecord::Base
has_many :answers
belongs_to :template
end
class Answer < ActiveRecord::Base
belongs_to :question
end