0

我希望能够从数据库中提取所有记录:

 u = User.all

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

 u.first

这在rails中可能吗?

4

2 回答 2

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现在做与 Rails 3 相同的事情#scoped(而在 Rails 3 中,它返回一个数组)。

于 2013-07-15T10:57:45.427 回答
0

你为什么不试试呢?

User.all不返回 AR 集合它返回一个数组。摆脱了.all,你将有一个工作的例子。

于 2013-07-15T10:57:50.217 回答