Уникальные ограничения на пользователя - PullRequest
0 голосов
/ 05 ноября 2018

Рассмотрим следующее 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 уникальным для всех пользователей .

На практике, однако, я хочу сделать поле name уникальным для пользователя - как лучше всего это сделать?

1 Ответ

0 голосов
/ 05 ноября 2018

Добавить

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

в ваш файл миграции

...