新手问题 请教下,rails3.1.1 ActiveRecord::Relation 是什么个情况?

suxiaohun · 2016年02月29日 · 最后由 hoiyd 回复于 2016年03月09日 · 1421 次阅读

如题,一个 rails3.1.1 的老项目 在涉及到查询分页的时候,报错,看日志,是因为查询返回的是 array,然后改了下,返回的是 enumberable,还是报错, 最后对比了老代码,发现返回的是 activeRecord:relation,

在网上查了下,将 array 转换成 activerecord:relation 后,可以正常使用

那么,ActiveRecord::Relation 是什么返回类型,这个问题是因为 rails 版本导致的吗?还真不知道有这么个东西。

ActiveRecord::Relation 是很基本的东西,可以理解为 ActiveRecord 的 SQL query builder。直到类似 all, to_a 这样的方法被调用时,才会真正向数据库发查询请求。

A Relation is just a builder for a SQL query and its methods do not operate on actual data."

可以看看这个 cast: http://railscasts.com/episodes/239-activerecord-relation-walkthrough

需要 登录 后方可回复, 如果你还没有账号请 注册新账号