アルパカログ

Webエンジニア兼マネージャーがプログラミングやマネジメント、読んだ本のまとめを中心に書いてます。

Elixir Ectoで複数IDを指定してレコードを取得する方法

f:id:otoyo0122:20200921123208p:plain:w300

EctoはElixirのORMで、ElixirにおけるActiveRecordのような存在です。

EctoとActiveRecordの書き方はよく似ていますが、言語が違うので当然、違いもあります。

違いがよくわかるのが、複数IDを渡してレコードを取得する方法でしょうか。

このエントリでは、Ectoで複数IDを渡してレコードを取得するメモしておきます。

Ectoで複数IDを渡してレコードを取得

ActiveRecordではwhere(user_id: user_ids)のように書くところを、Ectoではinを使って次のように書きます。

inEcto.Query.from/2に特有の書き方のようです。

users = User
  |> where([user], user.id in ^user_ids)
  |> MyRepo.all

以上です。

このエントリでは、Ectoで複数IDを渡してレコードを取得する方法をまとめました。