1

导轨版本: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在第一种情况下给我一个修改?

4

0 回答 0