在我的Rails应用程序中,Company充当用户模型。公司可以有许多客户和许多员工(汽车销售商)。
汽车销售商和客户之间存在多对多关系。
存在以下问题:很多时候,我不得不检索与整个公司所做的所有约会。由于在约会模型中没有保存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
最佳答案
我认为您可以使用:
class Appointment < ActiveRecord::Base
belongs_to :customer
belongs_to :carseller
has_one :company, :through => :carseller
end
然后,您只需要执行
appointment.company
即可。关于ruby-on-rails - 正确的 rails 型号是什么?建议使用冗余?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/7092108/