带有检查的rails中的优化查询包含在列表中

时间:2013-10-28 13:46:41

标签: sql ruby-on-rails optimization activerecord

我有六个型号。连接UserChannel以及FeedArticle的{​​{1}},CommentRelationshipUserChannel模型对于用户最喜欢的文章。

这是我的关系:

my relationships

每个用户都有一些频道,并且相应地通过这些频道,他有文章,我接受它,就像这样:

UserArticle

因此,如果两个用户拥有相同的频道,则可以拥有相同的文章。但是每个用户对他的文章和独特的喜爱文章都有独特的评论。

我的问题是:我查了每篇文章,对这个用户有评论吗?还要检查收藏夹。我这样做:

检查评论:

@articles = FeedArticle.find(:all,
       joins: "INNER JOIN relationships on feed_articles.channel_id = relationships.channel_id",
       conditions: "relationships.user_id = #{current_user.id} and relationships.channel_id  in (#{current_user.channels.map(&:id).join(',')})")

和收藏夹:

current_user.comments.where(feed_article_id: article.id) 

它有效,但在每篇文章中,我有两个问题:

current_user.user_articles.where(feed_article_id: article.id).present?

如何优化此查询?或者更好地使用分页而不用担心它?

0 个答案:

没有答案