gpt4 book ai didi

elixir - 如何在 Phoenix 选择字段中显示模型的所有记录

转载 作者:行者123 更新时间:2023-12-01 07:18:09 26 4
gpt4 key购买 nike

我有以下型号...

  • Page
  • Category

  • 我在 new 中有以下代码 page_controller.ex的 Action
    def new(conn, _params) do
    changeset = Page.changeset(%Page{})
    categories = Repo.all(Category)
    render(conn, "new.html", changeset: changeset, categories: categories)
    end

    我在 page/new.html.eex 中有以下选择字段的代码
    <div class="form-group">
    <%= label f, :category_id, "Parent", class: "control-label" %>
    <%= select f, :category_id, @categories ,class: "form-control" %>
    </div>

    它应该在选择字段中显示所有类别,以便我可以为页面选择一个类别,但不幸的是我无法找到问题。如果您有任何建议,请告诉我。

    最佳答案

    select/4函数需要第三个参数的元组列表。

    从文档:

    Values are expected to be an Enumerable containing two-item tuples (like maps and keyword lists) or any Enumerable where the element will be used both as key and value for the generated select.



    尝试将您的 Controller 更改为:
    categories = Repo.all(Category) |> Enum.map(&{&1.name, &1.id})

    这也可以在查询级别完成:
    query = from(c in Category, select: {c.name, c.id})
    categories = Repo.all(query)

    Phoenix: Ordering a query set有关将查询定义为模型中的函数的说明。

    关于elixir - 如何在 Phoenix 选择字段中显示模型的所有记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33805309/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com