创建非用户模型和AhoyMessage之间的关系

时间:2019-01-03 17:43:17

标签: ruby-on-rails ahoy

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

  • 一个AhoyMessage belongs_to一个Restaurant

  • 一个Restaurant has_many AhoyMessages

以便我可以访问,例如:

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

当我查看文档时,知道使用User模型是一种简单的方法,但是我只能使用Restaurant模型,因此文档中的示例无法使用为我的特殊情况工作。

1 个答案:

答案 0 :(得分:1)

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

尝试

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是饭店对象的多态关联。