【发布时间】:2014-12-27 23:39:47
【问题描述】:
我有两个模型:用户和课程。
User has_many :lessons
Lesson belongs_to :user
我必须检索作为教师的用户(他们至少有一节课)。哪种方法有效? 现在我使用了一个 where 条件,该条件在 Sql 中的“IN”中进行翻译,所以速度很慢,或者 n 查询其中 n 是课程数。谢谢你:)
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4
我有两个模型:用户和课程。
User has_many :lessons
Lesson belongs_to :user
我必须检索作为教师的用户(他们至少有一节课)。哪种方法有效? 现在我使用了一个 where 条件,该条件在 Sql 中的“IN”中进行翻译,所以速度很慢,或者 n 查询其中 n 是课程数。谢谢你:)
【问题讨论】:
标签: ruby-on-rails ruby ruby-on-rails-4
如果您需要教师,并且教师是至少有一节课的用户,那么请执行以下操作:
User.joins(:lessons)
这将执行内部连接,从而排除没有任何课程的用户。
但由于一个用户可以拥有多个课程,因此返回的表格可能会有多个用户。一种解决方案是按用户 ID 分组。
User.joins(:lessons).group("users.id")
或致电distinct
User.joins(:lessons).distinct
【讨论】: