Ruby on rails 排列具有不同重要属性集的对象和模型的最佳方法

Ruby on rails 排列具有不同重要属性集的对象和模型的最佳方法,ruby-on-rails,rails-activerecord,Ruby On Rails,Rails Activerecord,假设我有一些医疗软件,可以跟踪患者的账单和医疗程序。然后,每个患者都有三组重要的属性 共享属性-姓名、年龄、性别、患者编号等 账单属性-地址、账号、余额等 医学属性-血压、手术、血型等 我有一个具有上述所有属性的ActiveRecord患者模型。然后我可以有一个PatientBillingDetails控制器和一个PatientMedicalDetails控制器来区分两者。我应该再创建两个模型来对应每个控制器,还是让每个控制器从单个患者模型中绘制。如果创建两个新模型,让它们只使用适当的属性的最佳

假设我有一些医疗软件,可以跟踪患者的账单和医疗程序。然后,每个患者都有三组重要的属性

  • 共享属性-姓名、年龄、性别、患者编号等
  • 账单属性-地址、账号、余额等
  • 医学属性-血压、手术、血型等

  • 我有一个具有上述所有属性的ActiveRecord患者模型。然后我可以有一个PatientBillingDetails控制器和一个PatientMedicalDetails控制器来区分两者。我应该再创建两个模型来对应每个控制器,还是让每个控制器从单个患者模型中绘制。如果创建两个新模型,让它们只使用适当的属性的最佳/最简单的方法是什么?

    直接回答您的问题,而Rails教程喜欢为一个模型将信息存储到一个控制器中,我5年以上在Rails中编写大型企业应用程序的经验告诉我,您构建的控制器与需要显示的视图相关,而不是与模型的一对一关系。因此,为患者模型的每个方面创建多个控制器似乎更有意义

    然而,在我看来,真正的问题在于,您的患者模型由于试图一次做太多事情而负担过重。我建议您将一些信息规范化为它们自己的模型——特别是在您可能需要“有很多”关系的情况下,比如在不同日期记录的医疗属性

    为了给出一个更好的答案,我需要更多关于你的软件试图做什么的信息,特别是你试图编写的“医疗软件”的类别,如果这是用于专业用途或通用EHR或医疗计费应用程序的辅助实用程序。

    关于ActiveRecord中的多表继承与单表继承的讨论可能包含您的答案。如果您已经熟悉这些概念,并且只是想征求意见,那么我更喜欢MTI,因为我不喜欢在表中有一堆空值。