Rails has_many关系返回错误数量的模型对象

时间:2013-02-03 02:44:22

标签: ruby-on-rails ruby rails-activerecord

Rails版本:3.1.10

您好。我有一个与user模型有has_many关系的account模型。对于一个特定用户,有5个帐户。但是,当我要求相关模型时,我只得到3回:

> user.accounts.class
 => Array
> user.accounts.count
   (0.2ms)  SELECT COUNT(*) FROM "accounts" WHERE "accounts"."user_id" = 1
 => 5
> user.accounts.all.class
 => Array
> user.accounts.all.count
 => 3

我认为有一些ActiveRecord缓存正在进行,因为对user.accounts.all的调用不会生成数据库查询。但真正让我感到困惑的是即使user.accounts.classuser.accounts.all.class都等于Array,调用:count方法会做两件完全不同的事情。

我对ruby很新,但我知道你可以在动态定义对象的方法上做一些魔术。那是在发生什么事吗? ActiveRecord是否在第一种情况下给我修改了Array

0 个答案:

没有答案