小编Got*_*rek的帖子

Elixir 如何从 ecto 获取地图

我想从 ecto 获得一个数据结构,它允许在我的 HTML 中编写类似这样的东西:

<%= genders.name %>
Run Code Online (Sandbox Code Playgroud)

所以我想我应该有:

[{name: "Male", id: 1}, {name: "Female", id: 2}]
Run Code Online (Sandbox Code Playgroud)

现在我的控制器运行良好

defmodule HexProjectWeb.LandingController do
  use HexProjectWeb, :controller

  alias HexProject.Gender

  def index(conn, _params) do
    genders = HexProject.Repo.all(Gender) |> Enum.map(&{&1.name, &1.id})

    conn
    |> assign(:genders, genders)
    |> render("index.html")
    #render conn, "index.html", genders: genders
  end
end
Run Code Online (Sandbox Code Playgroud)

但它让我返回这样的性别:

[{Male, 1}, {Female, 2}]
Run Code Online (Sandbox Code Playgroud)

我不知道如何展示这一点。

所以我试过了

genders = HexProject.Repo.all(
  from g in Gender,
  select: %{name: g.name, id: g.id}
)
Run Code Online (Sandbox Code Playgroud)

它返回一个错误

函数 HexProjectWeb.LandingController.init/1 未定义(模块 HexProjectWeb.LandingController 不可用)

编辑:完全错误

错误渲染视图

编辑2:router.ex

defmodule HexProjectWeb.Router …
Run Code Online (Sandbox Code Playgroud)

elixir ecto phoenix-framework

5
推荐指数
1
解决办法
1448
查看次数

Phoenix 框架 Ecto 为时间戳提供默认值

我想知道如何自动填充时间戳()生成的“updated_at”和“inserted_at”列。

目标是不指定这些值,因为它必须是自动的。我知道如何处理其他列。

schema "users" do
  field :newsletter, :boolean, default: false

  timestamps(type: :utc_datetime)
end
Run Code Online (Sandbox Code Playgroud)

我试过了

schema "users" do
  field :newsletter, :boolean, default: false
  field :inserted_at,:utc_datetime, default: :utc_datetime
  field :updated_at,:utc_datetime, default: :utc_datetime
end
Run Code Online (Sandbox Code Playgroud)

但它似乎不起作用或运行时未考虑更改:

mix ecto.migrate
Run Code Online (Sandbox Code Playgroud)

我的代码是错误的还是我使用了错误的命令行?

在我的 SQL 模式中,我有

newsletter  BOOLEAN DEFAULT FALSE NOT NULL,
inserted_at TIMESTAMP             NOT NULL,
updated_at  TIMESTAMP             NOT NULL,
Run Code Online (Sandbox Code Playgroud)

不管我尝试什么,最后两行都不能有“DEFAULT TIMESTAMP”。

我必须先放下桌子才能工作吗?

elixir ecto phoenix-framework

1
推荐指数
1
解决办法
1428
查看次数

标签 统计

ecto ×2

elixir ×2

phoenix-framework ×2