通过acts_as_follower获取关注用户的帖子

时间:2011-10-27 17:45:33

标签: ruby-on-rails-3

我的Rails 3应用程序中有2个模型

用户:

class User < ActiveRecord::Base

  acts_as_followable
  acts_as_follower

  has_many :posts

end

发表:

class Post < ActiveRecord::Base
  belongs_to :user
end

因此,我可以抓取我关注的用户:User.find(1).following_users

但是如何获取关注用户的帖子?像User.find(1).following_users.posts

这样的东西

2 个答案:

答案 0 :(得分:2)

User.find(1).following_users只返回并参考,请看这里:

https://github.com/tcocca/acts_as_follower/blob/master/lib/acts_as_follower/follower.rb#L59

所以,

User.find(1).following_users.includes(:posts)

应包含查询中用户的帖子,但这将返回一组用户。以下应该工作,循环返回的用户并将他们的帖子收集到一个数组

posts = User.find(1).following_users.includes(:posts).collect{|u| u.posts}.flatten

答案 1 :(得分:0)

User.following_users.collect{|u| u.posts}

这应该有效