我正在尝试在我的应用上实施趋势功能。我有一个名为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:未知密钥:thesearchkeyword
我对命名范围并不是很了解,阅读API并没有多大帮助,因为它们只提供了非常简单的示例。有人能指出我正确的方向吗?