【问题标题】:Ecto one to many association on custom fields自定义字段上的 Ecto 一对多关联
【发布时间】:2017-03-20 22:48:18
【问题描述】:

我目前有一个“Rank”模型,其中包含字段(整数)“rank”,它是一个整数。另一方面,“Ship”模型有一个“usable_by”字段(整数)。我想要实现的是,当我返回 Rank 时,它们还包含所有 Ship 模型的列表,其中“usable_by”字段与 Rank 模型中的“rank”字段匹配。我知道这可以通过查询和手动填充数据来实现,我猜想,但是 Ecto/Phoenix 中是否有内置的东西可以让这更容易?

我想我希望的理想情况是使用 has_many(我并不真正关心反向关联)和 :references 或 foregin_key 之类的东西,但我似乎无法让它工作。这是我目前使用的线路:

排名模型

schema "ranks" do
  field :name, :string
  field :rank, :integer
  timestamps

  has_many :ships, Playground.Ship #Can I use :foregin_key and :references here?
end

【问题讨论】:

    标签: phoenix-framework ecto


    【解决方案1】:

    我猜你现在已经找到了答案,但是如果其他人偶然发现了这篇文章,答案是这样的:

    has_many :ships, Playground.Ship, foreign_key: :usable_by

    这样您就可以在关联模型上使用自定义字段名称。

    您应该在迁移中使用引用(您将在其中实际更新数据库)。这里Playground.Ship 的作用类似于对某个模型的引用,:created_by 是将在关系关联中使用的名称。

    【讨论】:

      猜你喜欢
      • 2015-09-16
      • 1970-01-01
      • 2013-11-17
      • 1970-01-01
      • 2020-08-27
      • 2023-01-20
      • 1970-01-01
      • 1970-01-01
      • 2019-07-17
      相关资源
      最近更新 更多