Ectoとは This guide is an introduction to Ecto, the database wrapper and query generator for Elixir. Ecto provides a standardized API and a set of abstractions for talking to all the different kinds of databases, so that Elixir developers can query whatever database they’re using by employing similar constructs. データベースラッパー クエリジェネレーター 標準化されたAPIと、あらゆる種類のデータベースと対話するための抽象化されたセットを提供 使用しているデータベースに対して同様の構造を用いて問い合わせを行うことができる [1] 1. https://hexdocs.pm/ecto/getting-started.html#content
ざっくりいうと RailsでいうActiveRecord, LaravelのEloquentに相当する が、Elixirにオブジェクトはないため、思想や書き方は異なる Ectoの方がより明示的で、SQLに近いイメージ 「リレーション先のデータも取得して、、」(preload) などは自分で明示的に書く必要がある どこで何のcallbackが動いているかが分からなくなるよりかは明示的な方がベターと思う(個人の感想です) あわせて読みたい: What is the advantage of Ecto over Rails ORM? # other language
Ecto.Changeset Changesets allow filtering, casting, validation and definition of constraints when manipulating structs. Changesetでデータのフィルタリング、キャスト(変換)、バリデーション、制約の定義が行える a set of change:一連の変更 をまとめたもの と捉えるといいかも 個人的には: Ectoを使った実装をする上で超重要 [1] [2] 1. https://hexdocs.pm/ecto/Ecto.Changeset.html 2. https://stackoverflow.com/a/33186341