为什么在控制台中不返回Active Record关系?

我终于开始将我的Rails应用程序从2.3.8升级到3.1.0。 我正在观看关于Active Record查询的RailsCasts( http://railscasts.com/episodes/202-active-record-queries-in-rails-3 )。

当我打开控制台(rails c)并执行与此类似的查询时:

articles = Article.order("name") 

我没有返回Active Record关系,而是看到了执行的查询。 我在这做错了什么?

Rails版本:3.1.0

RVM on 1.9.2

谢谢您的帮助!


编辑:我添加了示例中的屏幕截图。 在此处输入图像描述

你做的一切都是正确的。 您看到执行了查询,因为控制台在输出上调用了inspect方法。 试试articles = Article.order("name").class

ActiveRecord Relation类配置为在调用.last.last.last ,…等查询方法时执行查询。 方法列表还包括.inspect ,控制台调用的相同方法,用于显示返回值的表示forms。

因此,在您看来,对象永远不是关系,因为您始终可以看到查询的结果。

但是如果你检查对象类,你会发现它是一种关系

 Article.order("name").class # => ActiveRecord::Relation