# In-6ren">
gpt4 book ai didi

elixir - Repo 如何计算出表的名称?

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

我有更多菜鸟问题。当我做类似的事情时

case MyRepo.insert %Post{title: "Ecto is great"} do
{:ok, struct} -> # Inserted with success
{:error, changeset} -> # Something went wrong
end

Repo 如何知道要使用数据库中的哪个表?

最佳答案

Ecto 在调用 use Ecto.Schema 的模块上定义了一个 __schema__ 函数,然后调用 schema do ... end。如果您将 :source 传递给它,您会得到表名。

iex(1)> %MyApp.Post{}
%MyApp.Post{__meta__: #Ecto.Schema.Metadata<:built, "posts">,
comments: #Ecto.Association.NotLoaded<association :comments is not loaded>,
id: nil, inserted_at: nil, title: nil, updated_at: nil}
iex(2)> %MyApp.Post{}.__struct__
MyApp.Post
iex(3)> %MyApp.Post{}.__struct__.__schema__(:source)
"posts"

__schema__ 接受的各种参数已记录在案 here .

关于elixir - Repo 如何计算出表的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39652783/

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