到目前为止,我已经花了一天时间尝试对以下内容进行建模,我认为这应该很简单,我已经看太多了,可能有一个明显的解决方案在盯着我看..
目标:在其上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?
他们让我使用多态来理解它;事件、其他费用和费用可能是cashboxable
. 这样做的缺点是我知道我不能sum
过度多态关联?
通过 has_many,我很困惑如何将其关联起来,这似乎很复杂。但我可能会遗漏一些东西。