代码之家  ›  专栏  ›  技术社区  ›  category

每个用户的唯一限制

  •  0
  • category  · 技术社区  · 7 年前

    考虑以下事项 changeset :

    defmodule Flashcards.Cards.Deck do
      use Ecto.Schema
      import Ecto.Changeset
    
    
      schema "decks" do
        field :name, :string
        field :user_id, :id
    
        timestamps()
      end
    
      @doc false
      def changeset(deck, attrs) do
        deck
        |> cast(attrs, [:name, :user_id])
        |> validate_required([:name])
        |> unique_constraint(:name)
      end
    end
    

    unique_constraint (以及 unique_index 在迁移中)使 name 字段唯一 跨所有用户

    但实际上,我想 名称 字段唯一 -最好的办法是什么?

    1 回复  |  直到 7 年前
        1
  •  2
  •   denis.peplin    7 年前

    添加

    create index(:decks, [:user_id, :name], unique: true)
    

    到您的迁移文件