我正在使用Ruby on Rails为我的论文创建一个面向医生和患者的电子健康监控Web应用程序。我的问题是:
是否有任何简单的方法可以创建Connection
选项,如LinkedIn
所示,我可以在医生和患者之间使用?
我一直在考虑它,我的方法是在我的数据库中创建一个名为Connection
的新实体,它将存储doctor_id
和patient_id
属性。
我如何创建所需的必要验证? 例如,如果患者没有与医生联系,他们就不能向医生发送信息,或者如果没有连接,他们就看不到某些信息。
我正在寻找一种方法或指导我如何解决这个问题。
谢谢
答案 0 :(得分:1)
您可以采用的一种方法是在模型中编写一个方法,以便检查关系是否干净。例如,如果您想检查患者是否与医生联系,您可以在Patient
模型中添加类似的内容:
患者模型
def connected?(doc)
return true if Connection.where(:patient_id => self.id, :doctor_id => doc.id).count > 0
false
end
然后,只要您的应用中有患者和医生的实例,您就可以通过传递connected?
方法来检查它们是否已连接。例如,假设您的对象为@patient
和@doctor
。您可以像这样检查他们的连接:
if @patient.connected?(@doctor)
# do stuff, like send message
end
当然,使用此方法的方法可能会因您尝试完成的内容而有很大差异。在整个地方继续写if
语句会变得非常混乱。但是,我倾向于让应用程序先运行,然后专注于清理代码。
修改强>
正如Phlip所提到的,如果您的Connection
模型不包含任何数据,则删除模型并在Patient
和Doctor
之间使用has_and_belongs_to_many
关系更为简单{1}}。
我仍然会使用Patient
和/或Doctor
模型中的方法来检查连接是否存在。然后,如果您需要向连接添加数据,则可以轻松创建Connection
模型,而无需编辑控制器/视图。