我有一个应用程序,其中列出了父母和孩子.当我添加一个孩子时,我需要获得一个父母列表作为下拉列表显示.collection_select
凤凰城里有没有类似Rails的东西?我想显示用户的名称,并使用user_id作为参数.
我还希望通过site_id确定父项列表的范围.
您可以使用select/4功能Phoenix.HTML.Form
.
在您的控制器中,您可以使用查询来获取父项:
query = from(p in Parent, select: {p.id, p.name}) parents = Repo.all(query)
我们需要此查询的原因是以预期格式格式化值:
值应该是包含两项元组(如地图和关键字列表)或任何Enumerable的Enumerable,其中元素将同时用作生成的select的键和值.
然后select/4
,您可以在模板中使用:
<%= select f, :parent_id, @parents ,class: "form-control" %>
如果您已经有父母,也可以使用Enum.map/2转换记录:
parents = Repo.all(Parent) |> Enum.map(&{&1.id, &1.name})