Я думаю, вы хотите что-то вроде этого:
class Post < ApplicationRecord
belongs_to :owner, polymorphic: true
end
class User < ApplicationRecord
has_many :posts, as: :owner
end
class Follower < ApplicationRecord
has_many :posts, as: :owner
end
Из экземпляра вашего пользователя вы можете получить его сообщения с помощью @ user.posts То же самое относится и к вашему последователю, @ follower.posts
Если вы хотите добраться до родителя вашего экземпляра записи, вы можете сделать это через @ post.owner.Однако, чтобы это работало, нам нужно правильно настроить схему, объявив в модели столбец внешнего ключа и столбец типа, который объявляет полиморфный интерфейс с помощью формы ссылок:
class CreatePosts < ActiveRecord::Migration[5.0]
def change
create_table :posts do |t|
# your attribs here
t.references :owner, polymorphic: true, index: true
end
end
end