我有一个用户模型,允许用户关注其他用户。每个用户也有很多东西:
class User
has_many :following, :class_name => 'Followings', :foreign_key => 'follower_id'
has_many :things
end
我最终想要做的是从用户关注的所有用户那里获取所有内容,并能够对此查询进行分页。有什么建议吗?
答案 0 :(得分:0)
取决于您希望如何分离数据。这将为您提供所有内容的独特数组,而无需保留他们所属的跟随用户:
@user = User.first
@things = @user.followings.map(&:things).flatten.uniq
答案 1 :(得分: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 docs中描述了:source
选项。