Rails:ActiveRecord基础和关系 - 为什么两个类?

时间:2012-09-21 14:07:04

标签: ruby-on-rails activerecord

read表示“当涉及主CRUD方法时,关系就像模型一样嘎嘎作响。”

为什么关系不能完成所有工作,有什么意义让Base实例化然后返回Relation,它显然分享了它的concerns

1 个答案:

答案 0 :(得分:1)

在Rails 3中,数据库行为被分解为不同的混合。这样,有些东西可以在不必从ActiveRecord :: Base继承的情况下进行验证。 ActiveRecord :: Base类引入了进行数据库操作所需的所有混合。

此外,关系实际上不是记录或记录集。它可以保持查询的细菌,因此它可以被链接,直到链中的某些东西返回记录或记录集。

因此,where方法返回一个Relation对象。该对象可以调用返回另一个Relation对象的位置与查询中的另一个过滤器。依此类推,直到方法全部,首先,count或者其他东西被调用以使返回的对象成为查询的结果。