これまでのところ、以下をモデル化するために 1 日を費やしてきましたが、これは単純である必要があると信じています。
目的:課金可能なUsers
本、ユーザーはそれらの支払い(入金)、(入金) ただしクライアントに関連するもの) の支払いを説明する領域にアクセスし、イベントやクライアントに関係のない一般的な (出金) を記録clients
します。events
cashbox
chargeable events
other_charges
expenses
これまでのところ、正しい関連付けで作成されたユーザー、クライアント、およびイベント モデル。典型的なシナリオ。ユーザーはクライアントをイベントに予約します。これは課金可能です (ブール値)。
# == 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 を介して、これを関連付ける方法が混乱していて、複雑に思えます。しかし、私は何かが欠けている可能性があります。