如何使复杂的活动记录查询高效?

时间:2014-06-20 14:32:40

标签: sql ruby-on-rails activerecord

我有一个rails应用程序,它有一个标签,一个章节和一个名为chapter_tag_map的关系表。

我希望在代码控制器中有一个查询来获取热门标签。

基本上获取每个标签标记的章节总数,然后按章节降序排序。

但是对于视图我想在视图中使用Tag对象。我现在拥有的是:

tags = ChapterTagMap 
  .select("tag_id, count(tag_id) as chapters")
  .group("tag_id")
  .order('chapters desc')

@tags = items_for_current_page(tags)
  .map {|tag| Tag.find(tag.tag_id)}

#items_for_current_page is a helper method for pagination (gets the right set of 50 items)

有没有办法在不使用地图的情况下更直接地获取标签对象?或者有没有办法让这个更高效?

0 个答案:

没有答案