假设我有一张表"customers"
。我想获得该表的外键。
我们可以使用model
.__ struct .__ meta`
我们还可以通过加载所有模块从表中获取模型名称,并使模型模式与表名匹配
我们从表中获取外键是否可能?
这样做的最佳方法是什么?
如果它可能在ecto?
感谢。
答案 0 :(得分:6)
以下是如何在模型中找到每个@computed
关联的外键:
belongs_to
schema "comments" do
belongs_to :post, MyApp.Post
belongs_to :user, MyApp.User
end
输出:
alias MyApp.Comment
for name <- Comment.__schema__(:associations),
%Ecto.Association.BelongsTo{owner_key: owner_key} <- [Comment.__schema__(:association, name)] do
IO.inspect owner_key
end
:post_id
:user_id
是当前表中的列名。还有owner_key
可用,它是相关表格中的列名。