我终于开始将我的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
1.9.2上的RVM
感谢您的帮助!
答案 0 :(得分:8)
你做的一切都是正确的。您看到执行了查询,因为控制台在输出时调用inspect
方法。试试articles = Article.order("name").class
答案 1 :(得分:8)
ActiveRecord Relation类配置为在调用.all
,.last
,.first
,...等查询方法时执行查询。方法列表还包括.inspect
,控制台调用该方法显示返回值的表示形式。
由于这个原因,你似乎对象永远不是一个关系,因为你总是看到查询的结果。
但是如果你检查对象类,你会发现它是一种关系
Article.order("name").class
# => ActiveRecord::Relation