как указано выше, схема вашей таблицы выглядит следующим образом
admin has_many users
admin has_many posts
теперь, чтобы получить все сообщения, когда admin_id в пользователе == admin_id в сообщении, вы можете использовать объединения
@posts = Post.joins(admin: :users).
select("post.*, users.email as user_email").
where("posts.admin_id = users.admin_id")
@posts.first.name is equal to name of first post
@posts.first.user_email is equal to email in user table
объединения создадут sql INNER JOIN между этими 3 таблицами, затем вы выбираете столбец, который хотите отобразить, в качестве примера кода, приведенного выше. Я использую users.email в качестве user_email, user_email - это псевдоним, так что вы можете получить доступ напрямую используя @ posts.first.user_email