Я ищу создать приложение Rails с тремя моделями. Одна модель представляет собой автомобили, другая представляет цвета автомобилей, которые можно покрасить, а третий представляет собой заказ на автомобиль в некотором цвете. Каков наилучший способ структурирования отношений между этими моделями?Лучший способ моделирования этих отношений в Rails
ответ
Это довольно простой материал. Я предлагаю вам подробно ознакомиться с Rails guide об ассоциациях Active Record. Для вас:
class Car < ActiveRecord::Base
has_many :orders
belongs_to :color
end
class Color < ActiveRecord::Base
has_many :cars
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :car
belongs_to :color
end
Я подумал об этом несколько иначе, чем Janteh. Когда вы размещаете заказ, вы заказываете конкретный автомобиль определенного цвета, не так ли? Так что я думаю, что автомобили и цвет должны быть связаны по порядку, что-то вроде этого:
class Car < ActiveRecord::Base
has_many :orders
end
class Color < ActiveRecord::Base
has_many :orders
end
class Order < ActiveRecord::Base
belongs_to :car
belongs_to :color
end
Это в основном то, что предложил Janteh, но я не связывал автомобиль непосредственно с определенным цветом.
Но вы также хотите знать, в каких цветах вы можете заказать определенный автомобиль, не так ли? – Janteh
Я бы предпочел has_many: через отношения. Таким образом, вы можете получить доступ ко всем цветам, заказанным определенным автомобилем, и все автомобили, заказанные в определенном цвете.
class Car < ActiveRecord::Base
has_many :orders
has_many :colors, :through => :orders
end
class Color < ActiveRecord::Base
has_many :orders
has_many :cars, :through => :orders
end
class Order < ActiveRecord::Base
belongs_to :car
belongs_to :color
end
- 1. Лучший способ моделирования этих отношений Rails
- 2. Есть ли лучший способ моделирования этих отношений?
- 3. Какой самый идиоматический способ моделирования этих отношений в Rails?
- 4. Лучший способ моделирования отношений freindship в couchdb
- 5. GAE JDO - Каков правильный способ моделирования этих отношений?
- 6. Дешевый способ моделирования отношений друзей
- 7. Правильный способ моделирования рекурсивных отношений в Django
- 8. Лучший способ моделирования владения ресурсом
- 9. Альтернатива/Более быстрый способ моделирования этих данных
- 10. Лучший способ разработки распределенного моделирования
- 11. Лучший способ моделирования моих занятий?
- 12. Каков самый мощный способ моделирования этих данных?
- 13. Rails иерархических отношений моделирования пользователей завещанию
- 14. Должен ли я использовать полиморфизм для моделирования этих отношений?
- 15. Лучший способ создания этих таблиц
- 16. Обзор отношений моделирования CoreData
- 17. Есть ли лучший способ моделирования в UML?
- 18. Лучший способ моделирования макроса в C#?
- 19. Лучший способ моделирования данных графа в postgresql
- 20. Лучший способ моделирования значений карты в Grails?
- 21. Лучший способ моделирования логических ворот в C?
- 22. Лучший способ моделирования данных в Firebase
- 23. Лучший способ моделирования «wrap» в python
- 24. Лучший способ обработки отношений Категория/Подкатегория Ruby on Rails
- 25. Лучший способ моделирования Логика установки/поток
- 26. CakePHP - лучший способ моделирования ряда вызовов API
- 27. Лучший способ моделирования соединения Android REST
- 28. Есть ли лучший способ моделирования стандартного ввода?
- 29. Модель Rails для моделирования отношений в другом контексте
- 30. Лучший способ моделирования отношений «многие-к-одному» в NHibernate при работе с устаревшей DB?
Неплохой старт, возможно, необходимо добавить подтверждение для заказа, чтобы Цвет в заказе совместим с выбранным автомобилем. – EmFi