У меня есть 3 модели: Пользователь, Заказать и автомобилей и у меня есть вопрос, потому что я не знаю, что отношения между этими моделями будут лучше. Только требование состоит в том, чтобы в каждом из них был только один автомобиль.Rails типа связи между моделями
0
A
ответ
2
Пользователь может иметь много заказов и, следовательно, много автомобилей через эти заказы.
class User < ActiveRecord::Base
has_many :orders
has_many :cars, through: :orders
end
Заказ принадлежит пользователю и автомобилю.
class Order < ActiveRecord::Base
belongs_to :user
belongs_to :car
end
Автомобиль имеет один заказ.
class Car < ActiveRecord::Base
has_one :order
end
1
Так что вам нужно одно на одном между порядком и автомобилем, а затем вернуться к заказу и клиенту. Что-то ниже должно сделать трюк.
class Car < ActiveRecord::Base
has_one :order
has_one :customer, through: :order
end
class Order < ActiveRecord::Base
belongs_to :car
belongs_to :customer
end
class Customer < ActiveRecord::Base
has_one :order
has_one :car , through: :order
end
Но я предложу связь has_many взглядами на название модели, но вы знаете лучше вашу проблему, чем у меня.
Смежные вопросы
- 1. связи между моделями в Backbone.js
- 2. Rails: Ассоциация между моделями
- 3. Приглашения между двумя моделями Rails
- 4. Rails - Условия взаимодействия между моделями
- 5. Rails - множественные отношения между моделями
- 6. Rails: Проектирование отношений между моделями
- 7. Одна ассоциация между тремя моделями в Rails
- 8. Rails: взаимосвязь между двумя слабо связанными моделями
- 9. Rails - В чем разница между тестовыми моделями и моделями приложений?
- 10. Ruby on Rails: общий метод между моделями
- 11. Связь Ruby on Rails между r-моделями
- 12. Как обмениваться кодами между моделями? (Rails 2.3)
- 13. Создание взаимосвязи между двумя моделями в Rails
- 14. Как дублировать привязку Refile между моделями Rails?
- 15. Rails: добавление полиморфных ассоциаций между тремя моделями
- 16. Цепочные области между моделями в Rails
- 17. Почему ресурсы Rails не изолированы между моделями?
- 18. Должен ли я тестировать ассоциации между моделями?
- 19. Использование событий для связи между моделями в магистрали
- 20. Передайте идентификатор пользователя при создании связи между двумя другими моделями
- 21. CakePHP: Настройка связи между двумя моделями с помощью третьей таблицы
- 22. Как проверить правильность связи между моделями в laravel
- 23. Взаимоотношения между моделями без идентификаторов
- 24. отношения между моделями AngularJS
- 25. Как создать отношения has_many между двумя моделями, с несколькими моделями между ними? (Ruby на Rails ActiveRecord)
- 26. Проверка связей между связанными моделями?
- 27. Rails routing с моделями
- 28. связь между двумя моделями
- 29. Разница между моделями данных
- 30. Ассоциаторы между двумя моделями
Это скорее логический вопрос, но один подход может иметь много заказов одному пользователю и одному автомобилю в один заказ. Это предполагает, что в каждом заказе есть один автомобиль ... Я предлагаю вам переформулировать свой вопрос, чтобы включить детали, и мы можем помочь вам в кодировании. – Francisco
Хм, у меня есть только одно требование, когда я создаю новый порядок. Когда я завершаю заказ, больше автомобилей не может быть добавлено. – myf
Это я, или ваш вопрос не совсем ясен? У вас есть 3 модели. Вы даже не можете описать отношения между ними. Итак, как мы должны дать вам ответ? Возможно, вы могли бы предоставить более двух предложений, которые описывали вашу проблему. –