可以对AR集合使用ActiveRecord方法吗?

时间:2013-07-15 10:46:43

标签: ruby-on-rails-3 activerecord

我希望能够从db中提取所有记录:

 u = User.all

然后一旦加载就能将AR方法应用于生成的集合:

 u.first

这可以在铁轨中使用吗?

2 个答案:

答案 0 :(得分:1)

实际查询数据库后,结果将变为数组而不是ActiveRecord :: Relation。 (虽然#first仍然可以正常工作,因为它是Array)上也存在的方法。

如果你只是需要一个起点来构建一个ActiveRecord :: Relation,你可以使用scoped

# Doesn't execute a query yet
u = User.scoped
# This now executes a query similar to SELECT * FROM users LIMIT 1
u.first

请注意,在Rails 4.0中,#all现在与#scoped完全相同(而在Rails 3中,它返回一个数组)。

答案 1 :(得分:0)

你为什么不尝试?

User.all不会返回返回数组的AR集合。摆脱.all,你将有一个有效的例子。