Как лучше всего связать Rails 3 / Active Record с классами простой программы продаж? - PullRequest
2 голосов
/ 21 октября 2010

У меня есть 5 классов, которые являются частью программы для точек продаж:
Клиент, Техник, Заказ, Билет, Обслуживание

В каждом Заказе есть один клиент и много билетов.Каждый билет имеет технику и множество услуг.

Как мне сделать ассоциации, чтобы я мог выполнить следующий поиск:
customer.order.find_by_date (20.10.2010) .service.technician.name

Эточто я планирую:

class Customer < ActiveRecord::Base  
  has_many :orders
  has_many :tickets, :through => :orders
  has_many :technicians, :through => :tickets
end  

class Technician < ActiveRecord::Base
  belongs_to :ticket
  belongs_to :service
end  

class Service < ActiveRecord::Base
  has_many :technicians  
  belongs_to :ticket
end  

class Ticket < ActiveRecord::Base
  has_many :services
  has_many :technicians, :through => :services      
end  

class Order < ActiveRecord::Base
  has_many :tickets
  has_many :services, :through => tickets
  has_many :technicians, :through => services

  belongs_to :customer
end 

1 Ответ

0 голосов
/ 23 октября 2010

Отношения между клиентом и заказом один-ко-многим.И отношения между заказом и обслуживанием также один-ко-многим.Поэтому вы не можете сделать:

customer.order.find_by_date('10/20/2010').service.technician.name

Это должно быть:

customer.orders.find_by_date('10/20/2010').services.each do |service|
  service.technician.name
end

Это та же проблема, что и в вашем другом вопросе .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...