我正在开发一个医疗应用程序。在其中,我有用户和客户之间的关联(显然),以及用户和治疗之间的关联,以及用户和设置之间的关联(对于设置表)。
但这里棘手的部分是客户还必须与治疗表相关联,因为他们是记录治疗的人。用户只是管理上述所有内容的人。而且我们还有与客户相关的患者,因此需要多层次。所以业主有客户也有病人。患者和客户和业主一样有治疗方法。
对我来说,这似乎真的很复杂,而且除了用户工作之外,我很难得到任何东西。我正在使用 Rails 中的基本关系设置(我对 Rails 知之甚少)。我在 create 方法上使用 @treatment.user = current_user,然后简单地将所需的表与 user_id 相关联。我在治疗台上放了一个client_id,但这行不通吗?
我是否需要多态关联(但不确定那是什么)?或者我是否需要单独的表格来完成所有这些匹配?
谢谢。
代码:
class User < ActiveRecord::Base
# Include default devise modules. Others available are:
# :token_authenticatable, :confirmable,
# :lockable, :timeoutable and :omniauthable
devise :database_authenticatable, :registerable,
:recoverable, :rememberable, :trackable, :validatable
# Setup accessible (or protected) attributes for your model
attr_accessible :email, :password, :password_confirmation,
:remember_me, :role
validates :email, presence: true
has_many :clients
has_many :settings
has_many :treatments
ROLES = %w[admin receptionist practitioner]
def role_symbols
[role.to_sym]
end
def to_s
email
end
end