2011-10-04 62 views
5

我终于开始将我的Rails应用程序从2.3.8升级到3.1.0。我正在关注活动记录查询的RailsCasts(http://railscasts.com/episodes/202-active-record-queries-in-rails-3)。为什么Active Record关系不在控制台中返回?

当我打开控制台(轨道c)和做查询与此类似:

articles = Article.order("name") 

,而不是返回活动记录的关系,我看到执行的查询。我在这里做错了什么?

Rails的版本:3.1.0

RVM在1.9.2

谢谢您的帮助!


编辑:我从示例添加了截图。 enter image description here

回答

7

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

+0

谢谢,这似乎是这个问题。我从示例中添加了一个截图。你有什么想法为什么检查方法没有在示例视频中调用? – hade

+0

男人,我第一次尝试与Arel玩时,是否和这个事情有过争执? – jaydel

8

将ActiveRecord Relation类配置为在调用类似.all,.last,.first ...的查询方法时执行查询。方法列表还包括.inspect,这是控制台调用的用于显示返回值表示形式的相同方法。

由于这个原因,您认为该对象永远不是关系,因为您总是看到查询的结果。

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

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

感谢您的回答!我选择了Bohdan的答案,因为他提前发布了它。 + – hade

相关问题