为什么在控制台中不返回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