在我的rails应用程序中, Company 充当用户模型。 公司可以有许多客户和许多员工(careller)。
carseller 与客户之间存在多对多关系。
存在以下问题:很多时候我必须检索与整个公司进行的所有约会。由于约会模型中没有保存company_id,因此这可能非常痛苦。
我是否应该在约会中为公司提供外键并具有某种形式的冗余,还是有另一种简单有效的方式?
class Company < ActiveRecord::Base
has_many :customers
has_many :carseller
end
class Customer < ActiveRecord::Base
belongs_to :company
has_many :appointments
has_many :carsellers, :through => :appointments
end
class Carseller < ActiveRecord::Base
belongs_to :company
has_many :appointments
has_many :customers, :through => :appointments
end
class Appointment < ActiveRecord::Base
belongs_to :customer
belongs_to :carseller
end
答案 0 :(得分:1)
我认为你可以使用:
class Appointment < ActiveRecord::Base
belongs_to :customer
belongs_to :carseller
has_one :company, :through => :carseller
end
然后你只需要appointment.company
来获得它。