Size: a a a

2020 May 07

V

V in pro.elixir
Vladimir Sekisov
можно и в layout controller запихнуть
где он лежит? ни разу не видел
источник

V

V in pro.elixir
возможно ли сделать что-то вроде
if (блок нужно показывать на странице) {
  запрашиваем данные у дата-провайдера
}
// иначе не запрашиваем

только на бэке, без отдельного запроса с фронта, вебсокетов, liveview и т.д.
?
источник

VS

Vladimir Sekisov in pro.elixir
упс, это я еще не проснулся, у меня live view в качестве
layout, он же и контроллер, в ванильном конечно нет,
извиняюсь.
источник

VS

Vladimir Sekisov in pro.elixir
можете сделать plug и просто совать его в нужные контроллеры, без дополнительной логики
источник

V

V in pro.elixir
ясно. или применять plug к conn в любой функции контроллера - так же тоже можно?
источник

VS

Vladimir Sekisov in pro.elixir
тогда это просто вызов функции call, можно, конечно
источник

V

V in pro.elixir
а с live-view-layout это проще делается? сквозные блоки
источник

VS

Vladimir Sekisov in pro.elixir
это совсем по другому - live view как точка входа и
live components в качестве блоков,
далеко не для всего подойдет.
источник

V

V in pro.elixir
Плаги выполняются последовательно?
Т.е. если я добавил в роут плаг, выполняющийся 5мс - это увеличит время ответа сервера на 5 мс?
источник

VS

Vladimir Sekisov in pro.elixir
да, но можно ведь и кэшировать
источник

LL

Lama Lover in pro.elixir
V
Котаны, подскажите, как лучше сделать в фениксе блоки с логикой, присутствующие на нескольких страницах? Такие, для которых html размещается в лэйауте, но требующие ещё и данных. Например, блок "курсы валют" в сайдбаре на всех страницах.
Как сказал @eryx67 можно сделать плаг и применить его ко всему контексту, например. При получении запроса можно определять будет ли этот плаг использоваться или нет и слать в ассигн
Плаги исполняются последовательно, но если у тебя будет кол-во одновременных запросов > кол-во CPU то ничего страшного)
В крайнем случае можно сделать свой плаг, который оборачивает указанные во Flow
У создателя ESpec была библиотека для чего-то такого
источник
2020 May 08

МБ

Максим Барулин... in pro.elixir
А подскажите какой true way вставить значения в таблицу после её создания? У меня есть справочник туда нужно добавить несколько значений, чтобы они были сразу. Пока приходит в голову только execute в миграции, но, возможно, есть ещё какой-то путь?
источник

LL

Lama Lover in pro.elixir
Максим Барулин
А подскажите какой true way вставить значения в таблицу после её создания? У меня есть справочник туда нужно добавить несколько значений, чтобы они были сразу. Пока приходит в голову только execute в миграции, но, возможно, есть ещё какой-то путь?
Если я правильно понял, то тебе нужно вставить дефолтные значения в какой-нибудь SQL базе
Тут я знаю два решения:
Можно при миграциях указать как в базе будет генерироваться значение в конкретном поле
Можно в схеме указать опцию как будут генерироваться дефолтные значения (см функцию Schema.field)
источник

МБ

Максим Барулин... in pro.elixir
Lama Lover
Если я правильно понял, то тебе нужно вставить дефолтные значения в какой-нибудь SQL базе
Тут я знаю два решения:
Можно при миграциях указать как в базе будет генерироваться значение в конкретном поле
Можно в схеме указать опцию как будут генерироваться дефолтные значения (см функцию Schema.field)
не правильно
источник

LL

Lama Lover in pro.elixir
Максим Барулин
А подскажите какой true way вставить значения в таблицу после её создания? У меня есть справочник туда нужно добавить несколько значений, чтобы они были сразу. Пока приходит в голову только execute в миграции, но, возможно, есть ещё какой-то путь?
Если ты про заполнение таблицы после миграции, то пишется seeds.exs файл, который кладётся в priv и он исполняется через mix run
источник

МБ

Максим Барулин... in pro.elixir
Lama Lover
Если ты про заполнение таблицы после миграции, то пишется seeds.exs файл, который кладётся в priv и он исполняется через mix run
ну т.е отдельным действием?
источник

LL

Lama Lover in pro.elixir
Максим Барулин
ну т.е отдельным действием?
Зависит от логики. Я видел решение, когда к mix ecto.migrate добавляется флажок, который исполняет сиды после миграции
источник

МБ

Максим Барулин... in pro.elixir
хм... такое себе, немного ошибся и записи вставились два раза
источник

LL

Lama Lover in pro.elixir
Можно, конечно и в миграции указать через execute
источник

LL

Lama Lover in pro.elixir
Максим Барулин
хм... такое себе, немного ошибся и записи вставились два раза
А зависит от деплоя
источник