Я очень новичок в Ruby и начинаю создавать приложение для себя, просто чтобы учиться на ходу.
Извините, если это очень простая проблема, но я не могу понять ее со всеми поисками, которые я могу сделать. на ассоциации.
Поскольку я люблю собирать винил, я надеялся создать сайт, на котором пользователь мог бы размещать свои коллекции винила. Я начал с простой ассоциации has_many/belongs_to между моей моделью пользователя и моделью винила. Я понял, что если у двух пользователей одинаковый винил, то второму пользователю будет лучше просто найти ранее загруженный и добавить его в свою коллекцию (вместо того, чтобы иметь кучу дубликатов в базе).
После некоторого поиска я выбрал отношение has_many :through, в котором я создал третью модель, называемую collections, которая имеет:
belongs_to :user
belongs_to :vinyl
Так что теперь у моей виниловой модели есть
has_many :collections
has_many :users, through: :collections
и моя пользовательская модель имеет
has_many :collections
has_many :vinyls, through: :collections
Однако при просмотре в браузере sqlite кажется, что каждая «коллекция» заканчивается только одним user_id и однимvinyl_id. Очевидно, мне нужно, чтобы каждая «коллекция» имела длинный список идентификаторов пользователей.
Есть ли более простой способ сделать это? Можно ли просто преобразовать collection.rb в следующее?
has_many :users
belongs_to :vinyl
Возможно ли, чтобы A имело has_many из B И B имело_много позади A, или это просто безумие? Это глупый вопрос?
Конечно, мне придется сделать много модификаций в моих контроллерах и представлениях, но я хочу сначала убедиться, что база данных настроена правильно. Спасибо всем за любую помощь!