В моем приложении три типа профиля:
- Сотрудник
- Клиент
- Suppliee (работник поставщика)
И у меня есть много разных отслеживаний электронной почты:
- EmailOpen
- EmailBounce
- EmailClick
- и т.д.
Существует таблица для каждого из них, и я хотел бы создать двойную полиморфную ассоциацию, например, чтобы профиль мог иметь много разных email_activities, а email_activity принадлежит профилю.
Первоначально, было только одно отслеживание электронной почты, и поэтому полиморфная ассоциация выглядела так:
# employee.rb, customer.rb, suppliee.rb
has_many :email_activities, as: :profile
# email_activity.rb
belongs_to :profile, polymorphic: true, optional: true
Теперь, однако, я хотел бы, чтобы многие профили обращались к каждому профилю с помощью email_activities через полиморфную ассоциацию.
Код, который у меня есть на данный момент, выглядит так:
# employee.rb, customer.rb, suppliee.rb
has_many :email_activities, polymorphic: true, as: :profile, dependent: :destroy
# email_open.rb, email_bounce.rb, email_click.rb, etc.
belongs_to :profile, polymorphic: true, as: :email_activity, optional: true
Всякий раз, когда я пытаюсь получить доступ к email_activities для профиля, я получаю эту ошибку:
Unknown key: :polymorphic
Я полагаю, что синтаксис, который я использую, не совсем работает в этом случае. Как мне заставить его работать?