Какова правильная модель рельсов?Рекомендуется использовать избыточность? - PullRequest
3 голосов
/ 17 августа 2011

В моем приложении rails Компания действует как пользовательская модель . компания может иметь много клиентов и сотрудников (продавец).

Существует множество отношений между продавцом и клиент .

Существует следующая проблема: мне часто приходилось получать все встречи, сделанные со всей компанией.Поскольку в модели алинии не сохранен 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

1 Ответ

1 голос
/ 17 августа 2011

Я думаю, что вы можете использовать:

class Appointment < ActiveRecord::Base
  belongs_to :customer
  belongs_to :carseller
  has_one :company, :through => :carseller
end

Тогда вам просто нужно сделать appointment.company, чтобы получить его.

...