【发布时间】:2019-06-14 05:41:40
【问题描述】:
这里有三个重要的模型:Objective、Student 和 Seminar。所有都与 has_and_belongs_to_many 相关联。
有一个 ObjectiveStudent 连接模型,其中包括“ready”和“points_all_time”列。有一个包含“优先级”列的 ObjectiveSeminar 连接模型。
我需要收集与给定学生以及给定研讨会相关的所有目标。
他们还需要在研讨会上标有高于零的“优先级”。所以我想我需要这条线:
obj_sems = ObjectiveSeminar.where(:seminar => given_seminar).where("priority > ?", 0)
最后,他们还需要是学生准备好的目标,但得分未超过 7。所以我认为我需要这条线:
obj_studs = ObjectiveStudent.where(:user => given_student, :ready => true).where("points_all_time <= ?", 7)
有没有办法收集连接表记录出现在上述两个查询中的所有目标?请注意,这两个列表都没有返回目标;他们分别返回objective_seminars和objective_students。我的最终目标是收集满足上述所有条件的目标。
或者我处理这一切都错了?
额外问题:我也很想按目标在给定研讨会中的优先级排序。但我担心这会给数据库负载增加太多。您对此有何看法?
提前感谢您的任何见解。
【问题讨论】: