def list_links_count do
query =
from l in Link,
join: c in Click, as: :click,
where: c.link_id == l.id,
group_by: l.id,
select: {l, count(l.id)}
query |> Repo.all
end
我有一个计算,这个数字每点击链接的功能。问题是与最后的数据结构,它的形式为{Link, 10}
的。我真正想要做的是有它put_in总,这样我就可以更轻松地访问它在一个视图,类似link.click_count
。那可能吗?
你有没有对你的链接模式外生的虚拟现场?如果没有,你需要添加它:
field(:click_count, :integer, virtual: true)
然后,你的选择会是这个样子:
select: %{l | click_count: count(l.id)}
既然你现在在你的click_count
结构一个Link
键,你可以把钥匙,仍然有Links
的列表。所以,你应该能够访问link.click_count
。
{Link, 10} |> elem(1)
#⇒ 10
所以,你的代码中:
query
|> Repo.all()
|> how_do_you_get_tuple()
|> elem(1)