我有六个型号。连接User
和Channel
以及FeedArticle
的{{1}},Comment
,Relationship
,User
和Channel
模型对于用户最喜欢的文章。
这是我的关系:
每个用户都有一些频道,并且相应地通过这些频道,他有文章,我接受它,就像这样:
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?
如何优化此查询?或者更好地使用分页而不用担心它?