sqlite3发行的rails3 group

问题描述

| 以下查询应该可以,但是不能使用。
class Keyword
  def self.popular_queries
    t = Time.Now
    relation = Keyword.where(:created_at => (t.beginning_of_day..t.end_of_day))
    relation = relation.group(:name)
    relation = relation.select(\"name,COUNT(id) AS count_value\")
    relation.to_a
  end
 end
结果跟随无计数值
[#<Keyword name: \"a\">,#<Keyword name: \"b\">,#<Keyword name: \"c\">,#<Keyword name: \"d\">]
关键字表只有两列
name
和id。 解决方法
  def self.popular
    t = Time.Now
    relation = Keyword.where(:created_at => (t.beginning_of_day..t.end_of_day))
    relation = relation.group(:name)
    relation = relation.select(\"name,created_at,count(*) as c1\")
    sql = relation.to_sql
    self.connection.select_all(sql)
  end
    

解决方法

问题在于您的
Keyword
模型不知道
count_value
是什么,并且您正在基于SQL查询实例化一堆
Keyword
实例。创建您的实例时,他们在处理的数据中看到“ 5”,但是由于没有“ 5”属性而忽略了它们。 如果要运行任意SQL并获取简单数据,则应使用ѭ9或类似的低级方法。