Феникс n00b здесь.
Мне нужно предварительно загрузить ассоциации, если модель существует. Я написал:
model = Repo.get(Model, id)
|> Repo.preload([:asso1, :asso2, :asso3])
Но если модель не найдена, произойдет сбой, потому что Repo.preload
не может получить ноль в качестве первого аргумента:
протокол Ecto.Queryable не реализован для nil, данный модуль не существует. Этот протокол реализован для: Ecto.Query, Atom, Ecto.SubQuery, Tuple, BitString
Каким будет путь феникса для достижения этой цели?
Я нахожу
model = if model = Repo.get(Model, id) do
Repo.preload(model, [:asso1, :asso2, :asso3])
end
некрасиво.
Спасибо