3

我是 Rails 船上的新手,我想知道两种查询语法之间的区别

我尝试的第一个是:

User.limit(8).order('created_at DESC').group('created_at').count

第二个,似乎更加高效和强大:

User.count(:order =>'DATE(created_at) DESC', :group =>["DATE(created_at)"], :limit => 8) 

但我并不真正了解两者的用例。无论如何,我确信这很明显......谢谢!

4

3 回答 3

7

第一个是 rails 3 语法。并且每个方法都用在那里,即limit, order, groupActiveRecord:: Relation方法。使用第一种方法有很多优点。ActiveRecord::Relation 是 rails 3 的核心特性之一,除了资产管道等。

请阅读这个,

http://asciicasts.com/episodes/239-activerecord-relation-walkthrough

于 2012-10-31T11:45:00.450 回答
0

第二种语法是不推荐使用的老式语法。也称为哈希选项重载。第一个,链接,语法是前进的方向。

于 2012-10-31T11:35:24.590 回答
0

第二个是强大和高效。因为第一个将占用所有行(和所有列)然后它会计数。但第二个将只计算行数。

第二个将使用以下查询。

从表名中选择计数(*);

于 2012-10-31T11:47:38.713 回答