我有拥有病人的用户。但我想增加用户分享病人的能力。此刻,我在SharedPatient表中创建了user_id,指示病人已与哪个用户共享,patient_id指示病人。这有效,但我必须获取User.patients,然后在SharedPatient表中查询他们有权访问的其他患者的ID,然后在患者表中查询患者记录。Rails数据库架构:共享记录
我真的只是想调用User.patients并检索他们共享的患者和他们自己创建的患者。指示用户是否是创建者的布尔值似乎是在它们之间进行排序的一种可靠方式,但我担心这有点冒失。有没有一种首选的方法来解决这个问题或我忽略的ActiveRecord关系?
编辑
class User < ActiveRecord::Base
has_many :patients
has_many :notes
has_many :shared_patients
end
class SharedPatient < ActiveRecord::Base
belongs_to :user
belongs_to :patient
end
class Patient < ActiveRecord::Base
belongs_to :user
has_many :recordings, dependent: :destroy
has_many :notes, dependent: :destroy
has_many :shared_patients, dependent: :destroy
end
请分享模型的细节。 –
你可以查看我的答案的底部如何获得created_by thingy ... –