2017-08-28 96 views
0
Template code includes: 
    <%= for shift <- @shifts do %> 
<tr> 
    <td><%= shift.user_id %></td> 
    <td><%= shift.start_time %></td> 
    <td><%= shift.end_time %></td> 
    <td><%= shift.roster_id %></td> 

我如何可以显示从各自架构的用户名和rostername? 我可以将@users和@rosters传递给模板,但不知道如何使用上面的'for'循环。如何显示外键名称,而不是外键ID

+0

你有预装的关联?如果是,那么像'<%= shift.user.name%>'? – Dogbert

+0

谢谢,不知道预加载。工作中。 – alanb

回答

1

相反到其他数据访问librarie,外生是非常明确的。除非您直接请求它们,否则它不会为您的查询结果获取任何关联。

要求他们,你有两个选择:建立你自己的查询或简单地使用preload

预紧也有两种形式提供 - 一种是在现有的查询追加这个命令:

from u in User, where: u.id == ^user_id, preload: [:profile] 

或使用它作为一个回购的功能:

User 
|> Repo.get(user_id) 
|> Repo.preload([:profile]) 

结果是相同。