我有一个用户模型,一个锻炼模型和一个锻炼模型。我正在使用Devise进行用户管理,使用MongoID与MongoDB进行交互。
用户 references_many:锻炼
锻炼 references_many:练习和 referenced_in:用户
练习 referenced_in:exercise
如何查询数据库,为我提供所有 current_user 练习的列表。我没有在练习集合中存储user.id,只存储了workout.id。
是否可以,或者我应该重新设计模型以在锻炼和锻炼系列中存储user_id?
由于
答案 0 :(得分:2)
这样的事情怎么样:
workout_ids = Workout.where(:user_id => current_user.id).all.collect {| w | w.id}
exercise = Exercise.where(:workout_id => {“$ in”=> workout_ids})