Phoenix - 使用两个自定义主键获取模型时出现问题

Phoenix - Problem when get model with two custom primary key

我有一个这样的模型:

  @schema_prefix "sqlmgr"
  @derive {Phoenix.Param, key: :field_a}

  @primary_key false
  schema "table_a" do
    field :field_a, :string, size: 30, primary_key: true
    field :field_b, :string, size: 20, primary_key: true
    field :field_c, :string, size: 100

访问 :show endpoint

时出现错误 Ecto.Repo.get/2 requires the schema HttpApi.TableAs.TableA to have exactly one primary key, got: [:field_a, :field_b]

根据您的代码片段,尽管 @derive 您明确定义了两个主键。这是不可能的,正如错误消息告诉您的那样。删除其中一个即可。

#                                  ⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓⇓
field :field_a, :string, size: 30, primary_key: true
field :field_b, :string, size: 20, primary_key: true