为什么此方法返回活动记录关系而不是类类型的对象?

时间:2013-06-28 09:12:13

标签: ruby-on-rails activerecord

我有一个名为Node的类。在那堂课中,我有一个方法:

def self.random
    self.order("RANDOM()").limit(1)
end

我希望返回一个Node。事实上,它输出到rails控制台的东西看起来像是一个Node。除了它不是!

n = Node.random
n.class

给了我这个:

=> ActiveRecord::Relation::ActiveRecord_Relation_Node

1 个答案:

答案 0 :(得分:1)

我不确定它的ActiveRecord_Relation_Node部分是什么,但.limit()返回范围(ActiveRecord::Relation),以便您可以将更多范围的方法链接到它。如果您希望记录本身使用.first而不是.limit(1)