1

我正在开发一个医疗应用程序。在其中,我有用户和客户之间的关联(显然),以及用户和治疗之间的关联,以及用户和设置之间的关联(对于设置表)。

但这里棘手的部分是客户还必须与治疗表相关联,因为他们是记录治疗的人。用户只是管理上述所有内容的人。而且我们还有与客户相关的患者,因此需要多层次。所以业主有客户也有病人。患者和客户和业主一样有治疗方法。

对我来说,这似乎真的很复杂,而且除了用户工作之外,我很难得到任何东西。我正在使用 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
4

1 回答 1

2

我还不确定,你的问题是什么。但是由于您提到您不熟悉 Rails,这可能会对您有所帮助:

看看has_many :through relation(也可作为has_one :through

所以你可能会做这样的事情:

# patient.rb
class Patient < ActiveRecord::Base
  has_many :treatments, :through => :client
end
于 2012-11-25T05:19:54.323 回答