Я пытаюсь использовать Ecto.Adapters.SQL.query
, он отлично работает, но не для массивов. Например, это утверждение терпит неудачу:
Ecto.Adapters.SQL.query Repo, "SELECT p.* FROM posts p WHERE p.title in ($1)",
[["title1", "title2"]]
Ошибка:
** (ArgumentError) Postgrex expected a binary that can be encoded/cast to
type "text", got ["title1", "title2"]. Please make sure the value you are
passing matches the definition in your table or in your query or convert
the value accordingly.
ОБНОВЛЕНИЕ
Нет простого способа сделать это, но это не ограничение Ecto, это ограничение баз данных SQL/PostgreSQL, дополнительная информация и обходной путь.
Трудно поверить, что в 2016 году в базах данных SQL до сих пор отсутствует такая базовая функция...