为什么 'ApplicationRecord.descendants.count' 即使有很多 ApplicationRecord 的后代(继承模型)也给出 1?
Why 'ApplicationRecord.descendants.count' gives 1 even there are many descendants (inheriting models) of ApplicationRecord?
我 运行 在 rails 控制台中使用以下代码:
ApplicationRecord.descendants.count # 1 = this gave only 1
甚至 rails 5.1.3.
中也有很多子 classes 继承自 "ApplicationRecord" class insde project_root/app/models/
这是因为您的模型没有加载。它们在第一次调用时由 Rails autoloader 加载。
例如,如果您有一个用户模型:
> ApplicationRecord.descendants.count
=> 1
> User.count # You can also run User.last or something different
=> 144 # The result doesn't mind
> ApplicationRecord.descendants.count
=> 2 # It can be a different number but it will be bigger
我 运行 在 rails 控制台中使用以下代码:
ApplicationRecord.descendants.count # 1 = this gave only 1
甚至 rails 5.1.3.
中也有很多子 classes 继承自 "ApplicationRecord" class insde project_root/app/models/这是因为您的模型没有加载。它们在第一次调用时由 Rails autoloader 加载。
例如,如果您有一个用户模型:
> ApplicationRecord.descendants.count
=> 1
> User.count # You can also run User.last or something different
=> 144 # The result doesn't mind
> ApplicationRecord.descendants.count
=> 2 # It can be a different number but it will be bigger