访问儿童模特的最佳方式?

时间:2013-01-27 21:29:18

标签: ruby-on-rails rubygems

我正在使用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。

1 个答案:

答案 0 :(得分:1)

也许这个简单的解决方案是合适的?

在主题模型中:

has_many :articles

在用户的模型中:

has_many :subjects
has_many :articles, through: :subjects

之后,用户有一个方法articles

@user.articles