小编fet*_*tsh的帖子

检索给定用户评论的所有帖子,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
Run Code Online (Sandbox Code Playgroud)

在用户页面上(http://host/users/1例如)我想显示给定用户评论过的所有帖子.然后每个帖子都会有所有其他评论.

我可以在我的用户控制器中执行以下操作:

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

这样我会找到用户,然后是他的所有评论,然后对每个评论发布相应的帖子,然后(在我看来)每个帖子我将呈现post.comments.我是Rails中的新手,所以我可以做到这一点=)但我认为它有点不好而且有更好的方法来做到这一点,也许我应该使用范围或named_scopes(不知道这是什么,但看起来害怕).

所以你能指出我在正确的方向吗?

ruby activerecord ruby-on-rails associations

2
推荐指数
1
解决办法
1928
查看次数

标签 统计

activerecord ×1

associations ×1

ruby ×1

ruby-on-rails ×1