我希望能够从数据库中提取所有记录:
u = User.all
然后一旦加载就可以将 AR 方法应用于生成的集合:
u.first
这在rails中可能吗?
我希望能够从数据库中提取所有记录:
u = User.all
然后一旦加载就可以将 AR 方法应用于生成的集合:
u.first
这在rails中可能吗?
一旦你真正查询数据库,结果就会变成一个数组而不是 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 中,它返回一个数组)。
你为什么不试试呢?
User.all
不返回 AR 集合它返回一个数组。摆脱了.all
,你将有一个工作的例子。