如何改进以下数据库查询?

时间:2012-03-13 05:34:27

标签: ruby-on-rails ruby ruby-on-rails-3 ruby-on-rails-3.1

我正在运行Ruby on Rails 3.1。我正在查询数据库,以便检索与用户具有类别关系的文章对象,我正在尝试改进以下代码:

article_relationship_ids =
  User.article_category_relationships
  .uniq_by{|article_category_relationship| article_category_relationship.article_id}
  .map(&:article_id)

user.articles.where("articles.id NOT IN (?)", article_relationship_ids)

如何改进上述代码?

P.S。:我的“检索方法”在逻辑上是否正确,是否符合我的要求?

1 个答案:

答案 0 :(得分:1)

这应该在红宝石方面没有进一步处理的情况下获取你的ID:

article_relationship_ids =
  User.article_category_relationships.select(:article_id).uniq