【发布时间】:2015-10-30 18:45:13
【问题描述】:
我在医疗办公室的一个小项目中建立关系有困难,我正在使用用户登录的设计,对我有意义的关系逻辑是这样的:
- 注册用户可以创建个人资料“医生”
- 用户可以创建一个新的“患者”(应该与当前的设计 User => 'Medic' 有关)
- 新患者有新的“咨询”
- 而且咨询有“处方”
所以,我通过以下方式设置模型:
class User < ActiveRecord::Base
has_one :medic
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
end
class Medic < ActiveRecord::Base
belongs_to :user
has_many :patient
end
class Patient < ActiveRecord::Base
belongs_to :medic
has_many :consultum
end
class Consultum < ActiveRecord::Base
belongs_to :patient
has_one :prescription
end
class Prescription < ActiveRecord::Base
belongs_to :consultum
end
对于我运行的脚手架:
rails g scaffold Patient name last_name email phone references:medic
等等……
我觉得我错过了一些东西,¿我怎样才能正确地设置关系而不会在未来出现麻烦?¿还有其他方法(最佳实践)吗?提前致谢。
【问题讨论】:
-
has_many关系应以复数形式命名,例如has_many :patients或has_many : consulta
标签: ruby-on-rails ruby database-design devise relationship