У меня 2 модели: уведомление, почта. В уведомлениях В уведомлении у меня есть столбцы, object_id и Notification_type. В object_id пишите id из почты, в messages_type - «почта». В будущем я хочу добавить к уведомлению другое название модели и связать его с ним, поэтому мне нужна ассоциация по идентификатору и типу модели. Теперь у меня есть ассоциация:
class Mail < ApplicationRecord
has_many :notification, -> {where(notification_type: "mail") }, class_name: "Notification", foreign_key: "object_id"
end
Его работа, но я не знаю, как связаться в уведомлении, где будет взят тип уведомления. Я пытаюсь
class Notification < ApplicationRecord
belongs_to :mail, class_name: "Mail", foreign_key: "object_id"
end
В этом случае тип уведомления не учитывается.
class Notification < ApplicationRecord
belongs_to :mail, -> {where(notification_type: "mail") }, class_name: "Mail", foreign_key: "object_id"
end
Я получаю ошибку
ActiveRecord::StatementInvalid (PG::UndefinedColumn: ERROR: column mails.notification_type does not exist)
LINE 1: ...ils" WHERE "mails"."id" = $1 AND "mail...
^
: SELECT "mails".* FROM "mails" WHERE "mails"."id" = $1 AND "mails"."notification_type" = $2 LIMIT $3
Как я могу принять сотрудника в уведомлении модель?