如何将此ActiveRecord查询转换为命名范围?

时间:2012-08-29 06:40:56

标签: ruby-on-rails activerecord ruby-on-rails-3.1 named-scope

我正在尝试在我的应用上实施趋势功能。我有一个名为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并没有多大帮助,因为它们只提供了非常简单的示例。有人能指出我正确的方向吗?

0 个答案:

没有答案