0

到目前为止,我已经花了一天时间尝试对以下内容进行建模,我认为这应该很简单,我已经看太多了,可能有一个明显的解决方案在盯着我看..

目标:在其上Users记账,用户访问区域以记录那些(入款)、(入款)但仅与客户相关的付款,并记录与事件或客户无关的一般(出款)。clientseventscashboxchargeable 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?

他们让我使用多态来理解它;事件、其他费用和费用可能是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 回答