Я новичок в Эликсир и Феникс , и я врезался в стену.У меня проблемы с созданием с одной веб-страницы 3 записей в нашей базе данных.Вот что происходит:
У нас есть три таблицы:
События <-> Event_Actions <-> Действия
События и Действия связаны через many_to_many ассоциацию , называемую Event_Action . События на самом деле имеют 3 many_to_many ассоциаций с Actions через три разные таблицы с разными полями, но для примера я упростил его до одного.
При использовании веб-интерфейса Phoenix при отправке формы возникает ошибка.
Событие и Действие записи созданы правильно, но возникает исключение для ассоциации .По какой-то причине отметки времени не вставляются, даже если они присутствуют во всех схемах.
Если я просматриваю выходные данные запросов, я вижу, что действия или события INSERT INTO имеютполя timestamps, но не «event_actions».
Отсутствуют метки времени при вставке
Если я запускаю функцию вручную из iex или модульного тестирования, это работает, проблемапроисходит только тогда, когда он выполняется с веб-дисплея.
def create_action_on_start(event_id, action_id) do
payload = %Event_Start_Action{
event_id: event_id,
action_id: action_id
}
Repo.insert(payload)
end
Пока я здесь, у меня есть еще один вопрос к вам, так как это цель, которую я пытаюсь достичь с помощью этой системы.
Я пытаюсь создать динамическую форму с возможностью добавлять / удалять действия на лету и соответствующим образом обновлять форму.
Кроме того, схема таблиц немного сложнее, как указано выше. Действия имеют Targets (которые в основном представляют собой набор полей, которые действуют как фильтры) и также связаны через many_to_many ассоциацию .Так это выглядит примерно так:
События <-> Event_Actions <-> Действия <-> Action_Targets <-> Targets
Но я не могу ни отрисовать действия динамически , ни информацию о целях, связанных с действием.Есть ли у вас какие-либо советы по этому вопросу?Большое спасибо!
PS: У меня уже есть пост на reddit , но я не получил ответы, на которые надеялся.