我的应用程序中有三种配置文件类型:
我有许多不同的电子邮件跟踪:
每个表都有一个表,我想进行双重多态关联,例如,配置文件可以具有许多不同的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
我想在这种情况下,我使用的语法不太有效。我如何使它工作?
答案 0 :(得分:0)
has_many
没有:polymorphic
键,因此请尝试以下操作:
# employee.rb, customer.rb, suppliee.rb
has_many :email_activities, as: :profile, dependent: :destroy
# email_open.rb, email_bounce.rb, email_click.rb, etc.
belongs_to :profile, polymorphic: true, as: :email_activity