到目前为止,我花了一天时间试图模拟以下内容,我认为这应该很简单,我已经看了太多,并且可能有一个明显的解决方案盯着我看。
目标: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:通过?
他们用多态来理解它; events,other_charges&amp;费用可以是cashboxable
。这方面的缺点是我理解我不能sum
多态关联?
通过has_many,我很困惑如何联想到这一点,看起来很复杂。但我可能会遗漏一些东西。
答案 0 :(得分: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