elixir - 以表格格式显示具有关联的表格中的数据
问题描述
我有 3 张桌子,工作、注册和技能。关联是一个作业有很多注册,一个注册属于一个作业。一个注册有很多技能,一个技能属于一个工作。只要一个人没有两次相同的技能,我的db最多可以携带5个相似的技能。
我根据他们在模板上申请的工作对申请人进行分组,dashboard.ex
如下所示
<%= for {k,v} <- sort_by_job() do %>
<tr>
<td rowspan="8"><%= k %></td>
<%= Enum.map(v, fn applicant -> %>
<td>
<tr>
<td><%= applicant.name %></td>
<td><%= applicant.email %></td>
<td><%= applicant.website %></td>
<td><%= applicant.cover_letter %></td>
</tr>
</td>
<% end) %>
被调用的sort_job
函数位于视图 (dashboad.ex) 上,它返回每个工作类别中人员的姓名。代码是
def sort_by_job() do
Enum.group_by(
Applications.get_all_applicants(),
fn applicant -> applicant.jobs.name end
)
end
前面说了,技能在另外一张桌子上,有registration_id,可以知道哪个技能属于谁,怎么按照表格格式按照每个人渲染技能呢?
解决方案
你的“申请人”和你的一样registration
吗?
你没有包括你的实际模式,但这应该给你一个大致的想法:
您可以预加载属于您的应用程序的技能。
Application
|> Repo.all()
|> Repo.preload(:skills)
在您看来,您可以处理如何在表格中显示技能。如果您只是希望它们以逗号分隔,您可以执行类似...
applicant.skills
|> Enum.map(skill.name)
|> Enum.join(",")
推荐阅读
- android - FCM 通知导致 Expo 构建的 Android 应用重新加载
- javascript - 将属性限制为在其他属性的对象数组中定义的值?
- gitlab-ci - Gitlab CI & Code Climate JSON:可视化结果?
- ruby-on-rails - 如何使用rails_admin gem从rails中的另一个表中下拉?
- shell - 如何使用文档的行数在 shell 中设置“for i in seq”或等效项
- python - 如何检查单个朴素贝叶斯预测的结果?
- javascript - for循环检查哪个日期是星期几(周末或工作日)
- java - 请求许可后继续 Android Studio
- azure - 如何将消息从 ServiceBusQueueTrigger Azure 函数发送到 Durable Function
- json - 使用 jq 将 JSON 导出为 CSV