将几个模型预加载到Repo.all的结果

时间:2016-08-20 09:23:08

标签: elixir phoenix-framework

我有一个来自第三方库的函数,它从db:

返回数据
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的源代码。那怎么办呢?

请注意,Car和Driver有很多关系。

1 个答案:

答案 0 :(得分:0)

您可以将结构或结构列表传递给Repo.preload/3

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

这与您的示例代码功能相同。