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 に答える