- Пользователь может научить много тем, и каждая тема может иметь много уроков.
- Пользователь может присоединиться к урокам, созданным другими пользователями.
(1) довольно просто и я реализовал это следующим образом:Rails - множественные отношения между моделями
#user.rb
has_many :topics
has_many :lessons, through: :topic
#topic.rb
has_many :lessons
#lesson.rb
belongs_to :topic
belongs_to :user
(2) является много-ко-многим, и я думаю, что присоединиться к таблице - давайте назовем это соответствует (за дополнительную плату указывает, чтобы помочь мне найти лучшее имя!) - требуется.
Если добавить следующее
#user.rb
.
.
has_many :lessons, through: :match
#lesson.rb
.
.
has_many :users, through: :match
#match.rb
belongs_to :lesson
belongs_to :user
Я думаю, что я получаю сообщение об ошибке, поскольку Rails не может получить разницу между двумя отношениями при вызове @ user.lessons, например.
Какой может быть правильный подход?
p.s. Я вижу, что есть много вопросов, подобных этому, но я не смог найти правильное решение моей проблемы.
спасибо oreoluwa, ваш ответ имеет большой смысл. Я проверю это и дам вам знать, но я думаю, что это правильный путь. Спасибо за подсказку по именованию, я последую вашим советам. Недостающие 's' на темы были опечатками, но спасибо за указание на это :) Если тогда мне нужно что-то вроде lesson.subscribed_users, чтобы увидеть список подписчиков, я думаю, я добавлю 'has_many: signeded_users, через: user_lessons, source :: users' to lesson.rb, правильно? – davideghz
Думаю, да. Обратите внимание, что ваш источник должен быть 'user' not' users' – oreoluwa