在非 User 模型和 AhoyMessage 之间建立关系

create a relationship between non User model and AhoyMessage

我正在使用 Ahoy Email 来跟踪我发送到餐厅的电子邮件。 但是我想建立这样的关系:

以便我可以访问,例如:

ahoy_message.restaurant.phone_number
==> "+33612345678"

我在查看文档时知道有一种使用 User 模型的简单方法,但我只能使用我的 Restaurant 模型,因此只能使用文档中的示例不适用于我的特殊情况。

文档说它是多态的,您可以使用任何模型。

尝试

class CouponMailer < ApplicationMailer
  track user: -> { Restaurant.find_by(email: message.to.first) }
end


class Restaurant < ApplicationRecord
  has_many :messages, class_name: "Ahoy::Message", as: :user
end

因此您仍会使用 ahoy_message.user.phone_number,但 ahoy_message.user 是与餐厅对象的多态关联。