Сценарий:
Пример:
Продавец решает продать BMW. Перед продажей конкретной модели BMW (скажем, 7-й серии 760 Li) продавец должен создать CarSketch. Этот CarSketch принадлежит BMW, здесь мы получаем спецификации о BMW. В этом CarSketch также содержится краткая сводка физической информации о BMW (длина и т. Д.), Представленной в виде презентации.
Таким образом, если я хочу продать BMW. модель 540 и модель 760.
# car_sketch_for_model_540 = CarSketch obj
# presentation_for_model_540 = Presentation obj
# car_sketch_for_model_760 = CarSketch obj
# presentation_for_model_760 = Presentation obj
продавец утверждает и начинает продажу автомобиля BMW, модели 540 и 760. То есть покупатели видят только список презентаций.
Поскольку автомобиль может иметь много покупателей, покупатель выберет (купит) только одну модель (презентацию).
Модель CarSketch используется продавцом для внутренних работ. При просмотре сайта покупатель может видеть доступные модели для покупки, потому что рельсы смотрят презентации через модель CarSketch.
Для каждого покупателя, заинтересованного в конкретной модели (презентация), добавляется запись о покупателе, указывающая на презентацию.
У меня проблема с попыткой выяснить, как настроить эти ассоциации на Rails. В основном у меня 4 модели. Давайте назовем это Car, CarSketch, Presentation и Buyer.
- Автомобиль может иметь много CarSketch's
- CarSketch содержит внешний ключ для одной презентации. В CarSketch также может быть 2 строки, ссылающиеся на одну презентацию.
- Может быть любое количество записей презентации.
- Покупатель содержит внешний ключ для одной презентации. Под Покупателем может быть также 2 строки, ссылающиеся на одну Презентацию.
- CarSketch и Покупатель имеют внешние ключи для ссылки на Автомобиль.
Car-> CarSketch-> Презентация
Car-> Buyer-> Презентация
Как мне выразить (связать) презентацию с CarSketch и Buyer?!?
Это правильно?
class CarSketch < ActiveRecord::Base
belongs_to :presentation
end
class Buyer < ActiveRecord::Base
belongs_to :presentation
end
#what to do here?
class Presentation < ActiveRecord::Base
has_many :car_sketches
has_many :buyers
end
Мне плевать на записи, созданные на презентации, правда.
Я хочу иметь возможность:
#assume presentation is a Presentation record...
CarSketch.presentation = defined
Buyer.presentation = some other presentation
also, CarSketch and Buyer could point to the same Presentation record.
Помощь приветствуется!
Лично, хотя текущий работает. Это просто не имеет смысла, когда я читаю это ... CarSketch и Buyer - это таблицы соединений ... созданные мной, поскольку мне нужно хранить больше атрибутов для них ...
Не имеет смысла, что CarSketch принадлежит к презентации, потому что любое количество CarSketch может иметь одну презентацию, а презентация не имеет много CarSketch Посмотрите, что я я говорю?
Или это нормально, когда вы путаетесь при определении ваших собственных таблиц объединения в качестве моделей и ссылок на другие модели?
Меня не интересует непосредственное использование Presentation для получения CarSketch или Buyer.
UPDATE
Сильно отредактировано, чтобы заменить A B C D соответствующими именами.
ОП, пожалуйста, проверьте.
UPDATE*
# A = Car
# B = CarSketch
# C = Presentation
# D = Buyer
# 1) a Car can have many car_sketches.
# 2) a CarSketch has one Presentation.
# 3) a Car can also have many buyers.
# 4) a Buyer has one Presentation.
# Car.car_sketches[0].Presentation = some presentation...
# Car.buyers[0].Presentation = some presentation...
# CarSketch and Buyer can reference the same Presentation record. Different presentation records, too. What would you define under the Presentation model? T