【问题标题】:Retrieve teachers from User and Lesson models: an efficient way从用户和课程模型中检索教师:一种有效的方法
【发布时间】: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


    【解决方案1】:

    如果您需要教师,并且教师是至少有一节课的用户,那么请执行以下操作:

    User.joins(:lessons)
    

    这将执行内部连接,从而排除没有任何课程的用户。

    但由于一个用户可以拥有多个课程,因此返回的表格可能会有多个用户。一种解决方案是按用户 ID 分组。

    User.joins(:lessons).group("users.id")
    

    或致电distinct

    User.joins(:lessons).distinct
    

    【讨论】:

      猜你喜欢
      • 2020-11-11
      • 1970-01-01
      • 2016-01-30
      • 2016-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多