ruby-on-rails - 无法弄清楚 Active Record distinct 方法发生了什么
问题描述
我正在尝试根据 user_id 从模型表中选择不同的记录。我试过用几种可能的方式写这个。我不明白为什么将 distinct 与 pluck[2] 一起使用会返回正确的值,而只有 distinct[3] 似乎根本不起作用。我在这里想念什么?
使用'rails','~> 5.2.3'。
[1] pry(main)> Model.select(:user_id).distinct.count
(2967.7ms) SELECT COUNT(DISTINCT "models"."user_id") FROM "models"
=> 11432
[2] pry(main)> Model.distinct(:user_id).pluck(:user_id).count
(690.6ms) SELECT DISTINCT "models"."user_id" FROM "models"
=> 11432
[3] pry(main)> Model.distinct(:user_id).count
(1076.7ms) SELECT COUNT(DISTINCT "models"."id") FROM "models"
=> 2531300