У меня есть модель Flag
, которая соединена с несколькими другими объектами с FlagInstance
и полиморфной flaggable
в этой таблице:
table 'flag_instances'
flag_id
flaggable_id
flaggable_type
.....
С has__________ * через - я могу получить любуюпометить объект, как user.flags
, что замечательно.
Однако я пытаюсь пометить объекты с ошибками и уведомить другие объекты, поэтому я добавил
table 'flag_instances'
flag_id
flaggable_id
flaggable_type
notifiable_id
notifiable_type
.....
Проблема в том, чтоUser
может иметь флаг и может быть уведомлен о флаге.Так что user.flags
недостаточно конкретен, чтобы показать мне, что является flag
, а что является уведомлением о flag
.
Я думаю, что мне нужно изменить отношения:
user.rb
has_many :flag_instances, as: :flaggable, dependent: :destroy
has_many :flags, through: :flag_instances
has_many :flag_instances, as: :notifiable, dependent: :destroy
has_many :flags, through: :flag_instances
Но я не уверен, что поменять их.Может кто-нибудь предложить решение?
Примечание: и флаги, и уведомления о флагах могут принадлежать нескольким объектам, поэтому они оба должны оставаться полиморфными.
Спасибо