со ссылкой на этот SO-ответ и комментарии для вашей проблемы вы можете управлять с помощью поля foreign_type из полиморфной таблицы, чтобы указать, какая модель его использует
class Activity
belongs_to :trackable, polymorphic: true
# below is additional info
belongs_to :recommendation, foreign_type: 'Recommendation', foreign_key: 'trackable_id'
belongs_to :post, foreign_type: 'Post', foreign_key: 'trackable_id'
end
, и вы можете вызвать его
Activity.includes(recommendation: :doctor_profile).last(10)
Activity.includes(post: :patient_profile).last(10)
Activity.includes (рекомендация:: doctor_profile) означает
- Активность объединит рекомендацию с foreign_type и trackable_id
- , а затемиз рекомендации присоединится doctor_profile с doctor_profile_id