问题
I have finally started upgrading my Rails apps from 2.3.8 to 3.1.0. I was watching RailsCasts (http://railscasts.com/episodes/202-active-record-queries-in-rails-3) about Active Record queries.
When I open up the console (rails c) and do query similar to this:
articles = Article.order("name")
Instead of returning Active Record relations, I see the query executed. What am I doing wrong here?
Rails version: 3.1.0
RVM on 1.9.2
Thank you for your help!
EDIT: I have added a screenshot from the example.
回答1:
You're doing everything right. You see query executed because console invokes inspect
method on output. Try articles = Article.order("name").class
回答2:
The ActiveRecord Relation class is configured to perform the query when a query method like .all
, .last
, .first
, ... is invoked. The list of method also includes .inspect
, the same method called by the console to display the representation of the return value.
For this reason it seems to you that the object is never a relation, because you always see the result of the query.
But if you inspect the object class, you'll notice it's a relation
Article.order("name").class
# => ActiveRecord::Relation
来源:https://stackoverflow.com/questions/7646199/why-active-record-relation-is-not-returned-in-console