
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
никак не могу привыкнуть что тут все явно надо прописывать

Yuri
16.05.2018
16:51:29

Dmitry
16.05.2018
16:54:10

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
Можно и отдельный, если народ соберется

Nikolay
16.05.2018
18:26:33

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 берется из окружения
Там нету и не может быть никаких проблем

Артем
17.05.2018
07:30:53
))

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

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