0

これまでのところ、以下をモデル化するために 1 日を費やしてきましたが、これは単純である必要があると信じています。

目的:課金可能なUsers本、ユーザーはそれらの支払い(入金)、(入金) ただしクライアントに関連するもの) の支払いを説明する領域にアクセスし、イベントやクライアントに関係のない一般的な (出金) を記録clientsします。eventscashboxchargeable eventsother_chargesexpenses

これまでのところ、正しい関連付けで作成されたユーザー、クライアント、およびイベント モデル。典型的なシナリオ。ユーザーはクライアントをイベントに予約します。これは課金可能です (ブール値)。

# == Associations so far

class User < ActiveRecord::Base
  has_many :clients
  has_many :events
end

class Client < ActiveRecord::Base
  has_one :user, through: :events
  has_many :events
end

class Event < ActiveRecord::Base
  belongs_to :user
  belongs_to :client
end

問題: の関連付けはcashbox多態的であるべきか、それとも has_many :through であるべきか?

彼らは、ポリモーフィックを使用してそれを理解しています。イベント、other_charges & 費用は可能性がありますcashboxable。これの欠点は、ポリモーフィックな関連付けを超えることができないことを理解していsumますか?

has_many を介して、これを関連付ける方法が混乱していて、複雑に思えます。しかし、私は何かが欠けている可能性があります。

4

1 に答える 1

0
class User < ActiveRecord::Base
  has_many :clients
  has_many :events
end

class Client < ActiveRecord::Base
  belongs_to :user, through: :events
  has_many :events
end

class Event < ActiveRecord::Base
  belongs_to :user
  belongs_to :client
end
于 2012-08-29T20:08:17.637 に答える