Ruby on rails 3 RubyonRails-一对一/多?具有扭曲的双向多态性
我正在做一个脱欧前疾病登记,我需要一些新功能的帮助 在数据库中,有几个表负责患者的不同就诊(称为V1、V2、V3)。每次就诊可采集不同的样本(粪便、拭子、血液等)。每个样本都有一个特定的样本ID(字符串),给定一个样本ID,我需要搜索样本表(双向关系),找出样本来自哪个就诊,样本来自哪个患者 现在,我有两个想法Ruby on rails 3 RubyonRails-一对一/多?具有扭曲的双向多态性,ruby-on-rails-3,one-to-many,polymorphic-associations,one-to-one,Ruby On Rails 3,One To Many,Polymorphic Associations,One To One,我正在做一个脱欧前疾病登记,我需要一些新功能的帮助 在数据库中,有几个表负责患者的不同就诊(称为V1、V2、V3)。每次就诊可采集不同的样本(粪便、拭子、血液等)。每个样本都有一个特定的样本ID(字符串),给定一个样本ID,我需要搜索样本表(双向关系),找出样本来自哪个就诊,样本来自哪个患者 现在,我有两个想法 为了跟踪样本,每个就诊表都有一对一的特定样本参考(即粪便样本、拭子样本),这是样本表中的唯一id。但为了实现双向关系(搜索期间访问的样本),我需要从样本表中创建多态关系。这种方法要求我在
谢谢在我看来,样本应该属于访问(多态性允许不同的访问类型/表)。无需自引用或硬编码。您还可以制作一个抽象的
Visit
类来保持干燥:
class Visit < ActiveRecord::Base
self.abstract_class = true
has_one :sample, as: :visit
belongs_to :patient
end
class VisitOne < Visit
end
class VisitTwo < Visit
end
class Sample < ActiveRecord::Base
belongs_to :visit, polymorphic: true
delegate :patient, to: :visit
end
class Patient < ActiveRecord::Base
has_many :visit_ones
has_many :visit_twos
end
课堂访问
现在,您可以根据
样本
查找就诊
和患者
,以及根据就诊
查找样本
和患者
。您还可以跟踪每个患者的各种就诊类型。示例“类型”(wince,尝试使用另一个更准确的术语)可以简单地存储为Sample
上的文本字段-如果您不想在代码中将这些类型硬编码为枚举,您可以制作一个表来保存示例类型,并使Sample
属于SampleType谢谢,我会给它一个快照我只是想知道如何在查看页面中创建/更新它?我如何定义样本类型?你能给我一些示例代码吗?谢谢。顺便说一句,我用的是simple_form@hook38问建模/架构问题是一回事——问原型应用程序是另一回事;)。请尽最大努力,如果您有具体问题,请回复。