Ruby on Rails -使用Ahoy::Event和无关联模型进行查询

dly7yett  于 2023-01-08  发布在  Ruby
关注(0)|答案(1)|浏览(120)

我正在使用[Ahoy gem]来跟踪人们查看文章的次数。1
我想做的是根据这些视图按视图降序显示上个月最流行的articles
这在Ahoy::Event中跟踪,如下所示:

#<Ahoy::Event:0x00007fb8ab515660
 id: 1,
 visit_id: 1,
 user_id: 1,
 name: "Viewed Article",
 properties: {"id"=>"1"},
 time: Fri, 06 Jan 2023 04:36:38.155342000 UTC +00:00>

与Article模型没有关联。
使用此SO帖子:Ahoy events queries in rails
我能够做到这一点:

Ahoy::Event.where(time: 30.days.ago..Time.zone.now).group("properties -> 'id'").count

它返回以下内容(article.id =〉count):

{"1"=>1, "2"=>1}

但是,我想不出如何最好地:
1.将其与Article表连接以获取文章详细信息
1.对它们进行排序,使其按计数的降序排列
先谢了!

qcuzuvrc

qcuzuvrc1#

我相信你在这一部分有答案
关于订购,您可以添加order('COUNT(ahoy_visits.id) desc
因此,最终查询将类似于Article.joins(:ahoy_visit).where( ahoy_visits: { time: 30.days.ago..Time.zone.now } ).group("ahoy_visits.properties -> 'id'").order('COUNT('ahoy_visits.id') desc).count

相关问题