导轨版本: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.class
和user.accounts.all.class
都等于Array
,调用该:count
方法做了两件完全不同的事情。
我对 ruby 还很陌生,但我知道你可以通过动态定义对象的方法来做一些魔术。这就是这里发生的事情吗?ActiveRecord 是否Array
在第一种情况下给我一个修改?