У меня есть модель, используемая для создания ленты действий, которая называется «Деятельность» и имеет следующие столбцы:
t.integer "user_id"
t.datetime "created_at"
t.datetime "updated_at"
t.integer "source_id", :null => false
t.integer "activity_type", :null => false
t.text "data", :null => false
Я пытаюсь прикрепить каждое действие к различным типам объектов, которые стоит отображать в ленте (например, добавить в избранное, новые подключения и т. Д.). В настоящее время существуют следующие ассоциации:
belongs_to :user
belongs_to :source, :polymorphic => true
Я пытаюсь использовать source_id
в качестве первичного ключа связывающего объекта (например, избранное) и activity_type
в качестве enum (например, избранное => 1, приглашения => 2), используя гем simple_enum. *
ВОПРОС: Я не могу заставить :dependent => :destroy
работать с моделью избранного. Это напоминает мне об исключении, что у меня нет внешнего ключа fav_id для того, чтобы он мог чисто удалить Activity, как только я удаляю Избранное. Как я могу справиться с этим?
ActiveRecord::StatementInvalid (PGError: ERROR: column activities.favorite_id does not exist'