gpt4 book ai didi

elixir - 是否可以在不使用模型的情况下使用 Elixir 变更集/验证?

转载 作者:行者123 更新时间:2023-12-02 08:17:25 24 4
gpt4 key购买 nike

这会像定义您的架构和 def 变更集 并且从不编写任何 Repo.insert(changeset) 一样简单吗?

最佳答案

这是可能的,我发现它是验证 API 请求的完美方式。

您可以将没有后端的模型定义为:

defmodule MyApp.Models.File do
schema "" do
field :description, :string, virtual: true
field :url, :string, virtual: true
field :file_name, :string, virtual: true
field :ext, :string, virtual: true
field :mime, :string, virtual: true
field :size, :integer, virtual: true
end

def new_file_cs(model, params) do
model
|> cast(params, ~w(url file_name ext mime size), ~w(description))
end
end

然后在某个地方称它为:

def handle_request(data) do
changeset = File.new_file_cs(%File{}, data)
case changeset.valid? do
true -> :ok
false -> {:error, changeset}
end
end

这样的错误响应可以和phoenix生成的ChangesetView一起使用,返回统一的错误响应。

总而言之,您的模型应该有空模式“”并且所有字段都应该是虚拟的:true

关于elixir - 是否可以在不使用模型的情况下使用 Elixir 变更集/验证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40720942/

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