@proelixir

Страница 955 из 1045
Dmitriy
16.05.2018
14:48:49
нет, не дает. Даже просто Repo.get(Report, report_id) |> Repo.preload(:task) выдает ту же ошибку

defmodule ForappChat.Report do use Ecto.Schema import Ecto.Changeset import Ecto.Query import Ecto.Queryable alias ForappChat.{Repo, Report} schema "reports" do # field :task_id, :integer # field :user_id, :integer belongs_to :user, User belongs_to :task, Task end end defmodule ForappChat.Task do use Ecto.Schema import Ecto.Changeset import Ecto.Query import Ecto.Queryable alias ForappChat.{Repo, Task} schema "tasks" do # field :profile_id, :integer field :title, :integer belongs_to :profile, Profile end end

Alik
16.05.2018
14:51:22
попробуйте вместо belongs_to :task, Task написать belongs_to :task, ForappChat.Task

в определении схемы ForappChat.Report

Google
Alik
16.05.2018
14:51:45
ну и в других belongs_to соответственно, если поможет

я вижу у вас есть alias к ForappChat.{Repo, Report}, но нету к ForappChat.Task

а так как модуль Task есть в elixir вы получаете именно такую ошибку, а не то, что модуль не найден

Dmitriy
16.05.2018
14:57:33
точно из-за алиасов. @aliksend Спасибо большое ?

Alik
16.05.2018
14:57:59
Обращайтесь ?

Dmitriy
16.05.2018
14:58:01
никак не могу привыкнуть что тут все явно надо прописывать

Dmitry
16.05.2018
16:54:10
У меня есть доклад, который может подойти
А не желает ли Варгейминг сделать Elixir.Miinsk#1

Yuri
16.05.2018
16:54:39
У нас вместо этого FuncBy

Эликсирщики есть, но они как-то не особо активны

Но если взять всех функциональщиков, то митапы случаются

Dmitry
16.05.2018
16:56:01
Я готов предоставить доклад или воркшоп

Могу даже предоставить еще одного докладчика

Google
Yuri
16.05.2018
16:56:47
В Москве или в Минске? :)

Dmitry
16.05.2018
16:56:56
В Минске конечно

Yuri
16.05.2018
16:57:40
В Минске конечно
Отлично, сообщу организаторам

Dmitry
16.05.2018
16:59:07
Но я конечно за отдельный Erlang/Elixir

Я думал сам провести, назвать рубистов, позвать Никиту или Николая с их докладами о крутости Эликсира

Но что-то не дозрел

Yuri
16.05.2018
17:00:55
Можно и отдельный, если народ соберется

Artem
17.05.2018
03:30:53
подскажите, а как для config.exs прописать и загрузить переменную окружения из /config/*.secret.exs

Scas
17.05.2018
06:14:16
if File.exists?("foobar/#{Mix.env}.exs") do import_config "#{Mix.env}.exs" end

как то так?

Dmitry
17.05.2018
06:16:21
А фреймворк (если речь о Phoenix) никуда сам это разве не загружает?

Artem
17.05.2018
07:13:16
PUT /config/dev.secret.exs System.put_env("api_key", "key") GET /config/config.exs config :veil, TeacherWeb.Veil.Mailer, adapter: Swoosh.Adapters.Sendgrid, api_key: System.get_env("api_key") в консоле все работает, но приложение key не видит (( еще интересно как elixir разграничивает работу с системными переменныи Aplication и System Application.get_env(:APP_NAME, :hello)

Dmitry
17.05.2018
07:29:40
Application ерется из sys.config

System берется из окружения

Там нету и не может быть никаких проблем

Dmitry
17.05.2018
07:31:17
В какой момент у тебя выполяется System.put_env?

На этапе компилляции

Google
Dmitry
17.05.2018
07:31:28
И кто его вызывает?

Компилятор эликсира

А взять ты ее когда хочешь?

В рантайме

И кто будет брать ?

Сккмппппилллированная программа

Так в чем тут вооопрос то?

Nikolai
17.05.2018
07:34:55
а есть какие-нибудь бест-практики по конфигурированию с помощью ENV-переменных? REPLACE_OS_VARS — это нормально?

Dmitry
17.05.2018
07:35:02
Не, я тебе наврал

Это не тот случай

Тут просто get_env вызывается раньше чем put_env

Оба на этапе компиляции

Artem
17.05.2018
07:35:43
Так в чем тут вооопрос то?
последовательность компиляции хочу запихнуть этот кеу, а не прописывать его в системные переменные или передавать при запуске сервера

Dmitry
17.05.2018
07:35:51
У тебя же строчка get_env раньше чем import Mix.env.config

Artem
17.05.2018
07:37:21
это ты по каким половым признакам определил?

Dmitry
17.05.2018
07:37:53
Ну потому что сперва читается config.exs, а по дефолту у него внизу стоит импорт

Я думаю ты не менял, иначе у тебя конфиги бы не перезаписывались)

Вот он и выполняет строчки последовательно

Сперва читает из пустого окружения

Потом подгружает config/dev.exs

Google
Dmitry
17.05.2018
07:39:03
А в нем ипмпортирует config/dev.secret.exs

И только в нем уже пишет в окружение

Alexey
17.05.2018
07:39:47
Товарищи! а кто как для phoenix методы апи автодокументирует?

Artem
17.05.2018
07:41:35
Потом подгружает config/dev.exs
у меня нет dev.config у меня есть dev.exs и dev.secret.exs

Dmitry
17.05.2018
07:42:13
Я про них и говорю

Artem
17.05.2018
07:43:34
dev.exs он читает раньше в config.exs чем то что написал до этого

Dmitry
17.05.2018
07:43:49
В смысле раньше

По умолчанию импорт стоит последней строкой

Иначе вообще не было бы смысла в такой конфигурации

Artem
17.05.2018
07:45:13
сначало import_config "#{Mix.env}.exs" а потом config :veil, ...

Dmitry
17.05.2018
07:47:51
То есть твой разный конфиг из разных окружений перезаписывается одним и тем же конфигом дефолтным?) Ну я такого не встречал пока что...

Artem
17.05.2018
07:47:54
так я понял, а где он должен подгружать dev.secret.exs ?

Dmitry
17.05.2018
07:48:42
В самом конце конечно же

Зачем вообще писать в env и читать из неё , если тв можешь напрямую в dev.secret положить?)))

У твоего велика надо ногами крутить колесо, чтобы педали крутились

Артем
17.05.2018
07:50:13
издалека зашёл

Dmitry
17.05.2018
07:51:14
Вот до чего рельсы доводят людей(((

Там то все ленивое

Артем
17.05.2018
07:52:03
не, ну идея понятна. хотелось в конфиге написать config :veil, TeacherWeb.Veil.Mailer, adapter: Swoosh.Adapters.Sendgrid, api_key: System.get_env("api_key")

Dmitry
17.05.2018
07:52:05
Никакого этапа компиляции

Google
Артем
17.05.2018
07:52:16
а в конфигах окружений только ключи

а так всё дублировать надо

Dmitry
17.05.2018
07:52:42
Нифига не надо дублировать

Надо просто написать в dev.secret.exs и prod.secret.exs

Одну строчку с ключом

Вот просто api_key: и_тут_ключ

Артем
17.05.2018
07:54:01
ну, скорее две. а там где ещё пароль, то и 3, ну и так далее

Dmitry
17.05.2018
07:54:17
Ну все правильно

Артем
17.05.2018
07:54:17
но это всё херь какая-то

Dmitry
17.05.2018
07:54:32
Так все равно ты в env файл пишешь

А так прямо в эликсире

Разницы никакой

Артем
17.05.2018
07:54:48
конфиг должен инклюдиться в конце чтобы перезаписать что-то из config.exs

при необходимости

например, другой сторадж для arc

или там я не знаю, путь к логам другой

Dmitry
17.05.2018
07:55:49
Крч надо выкинуть рельсу из головы, понять что это компилируемый язык, и сразу все станет понятно

Вторая по популярности проблема - это запихнуть Application.get_env в атрибут модуля

@api_key Applocation.get_env(:my app, key)

А потом менять sys.config и не понимать почему не работает

А вот если тоже самое сделать, но только System.get_env

Страница 955 из 1045