Получить все сообщения, где данный пользователь прокомментировал, Ruby on Rails

У меня есть пользователи, посты и комментарии. Пользователь может оставить только один комментарий к каждому сообщению.

class User < ActiveRecord::Base
  has_many :posts
  has_many :comments
end

class Post < ActiveRecord::Base
  has_many :comments
  belongs_to :user
end

class Comment < ActiveRecord::Base
  belongs_to :user
  belongs_to :post
end

На странице пользователя (http://host/users/1 например) Я хочу показать все сообщения, где данный пользователь прокомментировал. Каждый пост будет иметь все остальные комментарии.

Я могу сделать что-то вроде этого в моем контроллере пользователя:

def show
  @user = User.find(params[:user_id])
  @posts = []
  user.comments.each {|comment| @posts << comment.post}
end

Таким образом, я найду пользователя, затем все его комментарии, затем соответствующую запись для каждого комментария, а затем (на мой взгляд) для каждого поста, который я буду отображать post.comments. Я полностью новичок в Rails, так что я могу сделать это =) Но я думаю, что это как-то плохо, и есть лучший способ сделать это, может быть, я должен использовать области или named_scopes (пока не знаю, что это такое, но выглядит страшно).

Так можете ли вы указать мне правильное направление здесь?

Ответы на вопрос(2)

Ваш ответ на вопрос