создать связь между моделью не пользователя и AhoyMessage - PullRequest
0 голосов
/ 03 января 2019

Я использую Ahoy Email для отслеживания писем, которые я отправляю в мои рестораны. Однако я бы хотел создать такие отношения:

  • и AhoyMessage belongs_to a Restaurant

  • a Restaurant has_many AhoyMessages

, чтобы я мог получить доступ, например:

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

Я знаю, когда смотрю на документы, что есть простой способ сделать это с моделью User, но я могу использовать только свою модель Restaurant, и, следовательно, пример в документе не работает для моего конкретного дело.

1 Ответ

0 голосов
/ 03 января 2019

Документы говорят, что это полиморфно, и вы можете использовать любую модель.

Попробуйте

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 - это полиморфная ассоциация сресторанный объект.

...