From 32bd50d161a45893c4296022d7e2150a5b5a297d Mon Sep 17 00:00:00 2001 From: Thomas Citharel Date: Mon, 15 Jan 2018 12:17:34 +0100 Subject: [PATCH] fix tags Signed-off-by: Thomas Citharel --- lib/eventos/events/event.ex | 3 ++- .../migrations/20180110093906_create_events_tags.exs | 10 ++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) create mode 100644 priv/repo/migrations/20180110093906_create_events_tags.exs diff --git a/lib/eventos/events/event.ex b/lib/eventos/events/event.ex index ca10113ec..c1249ddbd 100644 --- a/lib/eventos/events/event.ex +++ b/lib/eventos/events/event.ex @@ -50,7 +50,7 @@ defmodule Eventos.Events.Event do field :large_image, :string field :publish_at, Timex.Ecto.DateTimeWithTimezone belongs_to :organizer, Account, [foreign_key: :organizer_id] - has_many :tags, Tag + many_to_many :tags, Tag, join_through: "events_tags" belongs_to :category, Category many_to_many :participants, Account, join_through: Participant has_many :event_request, Request @@ -64,6 +64,7 @@ defmodule Eventos.Events.Event do def changeset(%Event{} = event, attrs) do event |> cast(attrs, [:title, :description, :begins_on, :ends_on, :organizer_id, :category_id, :state, :geom, :status, :public, :thumbnail, :large_image, :publish_at]) + |> cast_assoc(:tags) |> validate_required([:title, :description, :begins_on, :ends_on, :organizer_id, :category_id]) |> TitleSlug.maybe_generate_slug() |> TitleSlug.unique_constraint() diff --git a/priv/repo/migrations/20180110093906_create_events_tags.exs b/priv/repo/migrations/20180110093906_create_events_tags.exs new file mode 100644 index 000000000..ee49c21a2 --- /dev/null +++ b/priv/repo/migrations/20180110093906_create_events_tags.exs @@ -0,0 +1,10 @@ +defmodule Eventos.Repo.Migrations.CreateEventsTags do + use Ecto.Migration + + def change do + create table(:events_tags, primary_key: false) do + add :event_id, references(:events) + add :tag_id, references(:tags) + end + end +end