/ / Repo.allの結果にいくつかのモデルをプリロードする - elixir、phoenix-framework

Repo.allの結果にいくつかのモデルをプリロードする - elixir、phoenix-framework

私は、データベースからデータを返すサードパーティ製のライブラリからの関数があります。

cars = get_all_cars #third-party function

内部的には Repo.all(from c in Car)。モデルCarに関連付けられている2つのモデルをプリロードします。これができた

`Repo.all(from c in Car, preload: [:driver, :driver_to_car])`

しかし、私はアクセス権を持っておらず、のソースコードを変更したくありません。 get_all_cars。それでは、どうすればよいでしょうか。

車と運転手は多対多の関係にあることに注意してください。

回答:

回答№1は0

あなたはに構造体または構造体のリストを渡すことができます Repo.preload/3

cars = get_all_cars |> Repo.preload([:driver, :driver_to_car])

これはあなたのサンプルコードと同じように機能します。