У меня есть две модели, Conversation
и Message
, и одна проблема Conversible
. A Conversible
имеет один Conversation
и Conversation
имеет много Message
. Я хотел бы установить Conversible
, чтобы я мог позвонить messages
на моем Conversible
и он вернет Message
за его Conversation
. Вот что у меня есть до сих пор:has_many через has_one
module Conversible
extend ActiveSupport::Concern
included do
has_one :conversation, as: :conversible dependent: :destroy
has_many :messages, through: :conversation
end
end
class Message < ActiveRecord::Base
belongs_to :conversation
end
class Conversation < ActiveRecord::Base
belongs_to :conversible, polymorphic: true
has_many :messages, dependent: :destroy
end
К сожалению, это не работает. Я могу позвонить conversible.messages
, но он всегда возвращает пустое отношение, даже когда conversible.conversation.messages
возвращает отношение с его Message
.
Что мне не хватает?
где вы можете добавить свой код 'Conversible'? – IS04
У нас есть еще четыре модели, которые будут включать 'Conversible'. Например, есть модель «Цель», которая должна иметь «Беседу». Я оставил их, чтобы попытаться задать вопрос простым. – LandonSchropp