我正在使用Ruby Gem'Socialization',在我的模特身上做一些跟随/喜欢的东西。
场景:用户可以关注主题,并且通过主题,用户可以检索给定主题下的所有文章。所以,我真的无法弄清楚,如何使用gem提供的方法做到这一点。所以我尝试在用户模型中制作自己的方法。
class User < ActiveRecord::Base
..
acts_as_follower
acts_as_liker
def get_subjects
follows = self.follows
f = []
follows.each do |follow|
f << follow.followable
end
return f
end
def get_articles
subjects = self.get_subjects
a = []
subjects.each do |subject|
if subject.articles.count > 0
a << subject.articles
end
end
return a
end
..
end
我在这里尝试做的是根据用户所关注的主题找到用户感兴趣的文章。
这可能没问题,但我相信它可以做得更好。有没有人可以在这里指导我一下?
谢谢,Oluf。
答案 0 :(得分:1)
也许这个简单的解决方案是合适的?
在主题模型中:
has_many :articles
在用户的模型中:
has_many :subjects
has_many :articles, through: :subjects
之后,用户有一个方法articles
:
@user.articles