0

我正在尝试在我的应用程序上实现趋势功能。我有一个名为的表Search,它有一keyword列。每次用户使用搜索功能时,关键字都会作为一行存储在表中。我所做的是我完成了过去 4 小时的搜索,按关键字对它们进行分组,将搜索限制为 6 个关键字,并根据关键字的出现次数对其进行排列。目前,我在控制器上使用这个查询:

Search.where('created_at >= ?', 4.hours.ago).group(:keyword).order('count_keyword DESC').limit(6).count(:keyword)

我尝试将相同的查询转换为命名范围,这就是我得到的:

scope :trending, lambda { where('created_at >= ?', 4.hours.ago).group(:keyword).order('count_keyword DESC').limit(6).count(:keyword) }

这里的问题是我收到此错误:

ArgumentError: Unknown key: thesearchkeyword

我真的不太了解命名范围,阅读 API 并没有太大帮助,因为它们只提供了非常简单的示例。谁能指出我正确的方向?

4

0 回答 0