Я пытаюсь получить отношения has_many :through
, работающие в Ecto, для отношения многих факторов между моделью User
и моделью Group
.Ecto has_many: через форму
Единственная информация, которую я смог найти в Интернете, была связана с вложенными атрибутами в сообщении от José Valim here (что отличное, кстати).
Поскольку группы уже существуют в системе, я надеялся сделать несколько входных данных. В этом я столкнулся с несколькими проблемами. Я не считаю, что можно назначить ассоциацию groups
в наборе изменений непосредственно, потому что я получал ошибку каждый раз, когда я пытался это сделать. Моя следующая мысль заключалась в том, чтобы сделать работу вручную (поиск, удаление и вставка записей GroupMembership
), однако я не был уверен, что это был правильный путь, чтобы пойти вниз, и хотел сначала получить совет.
Поскольку образец кода имеет довольно много строк, я сделал gist here.
Если я предпочитаю, чтобы я опубликовал его прямо в этом вопросе, я, безусловно, могу это сделать.
Спасибо за помощь!
Я не могу говорить с кодом Ecto, но я могу говорить о принципах проектирования БД. Реляционные типы БД скажут вам, что вы не можете моделировать n-n отношений. То, что вы делаете, - это построить таблицу отношений (в вашем случае что-то вроде UsersInGroups), а затем вы создадите для нее 1-n от пользователей и групп. Я не уверен, что это поможет вашей проблеме Ecto, но, скорее всего, это лучший способ моделирования ваших данных. FWIW. –