0

我有一个用户模型,允许用户关注其他用户。每个用户也有很多东西:

class User
  has_many :following, :class_name => 'Followings', :foreign_key => 'follower_id'
  has_many :things
end

我最终想做的是从用户关注的所有用户那里获取所有内容,并能够对这个查询进行分页。有什么建议么?

4

2 回答 2

0

取决于您希望如何分离数据。这将为您提供所有事物的唯一数组,而不会保留他们属于哪些关注的用户:

@user = User.first
@things = @user.followings.map(&:things).flatten.uniq
于 2013-11-07T07:47:40.903 回答
0

这正是has_many :through的用途:

class User
  # ...
  has_many :followed_users, :through => :followings, :source => :followed
  has_many :followed_things, :through => :followed_users, :source => :things
end

Rails API 文档:source中描述了该选项。

于 2014-01-09T22:05:39.407 回答