【发布时间】:2016-03-11 10:37:08
【问题描述】:
我有两个 ActiveRecord 模型:User 和 Course。关联如下:
class User < ActiveRecord::Base
has_many :courses
end
class Course < ActiveRecord::Base
belongs_to :user
end
现在我的问题是:如何获取每个用户的最后一门课程?
我尝试了以下操作:
courses = Array.new
User.find_each { |u| courses << u.courses.last }
但我怀疑它的性能。因此,寻找具有良好性能的最佳解决方案。
提前致谢。
【问题讨论】:
-
我猜你需要一个 SQL 查询来一次获取所有用户的最后一门课程。我说得对吗@Ganesh
-
是的,我需要一个 SQL 查询。 @illusionist
-
您可以使用连接和原始 SQL 的东西来解决这个问题,但我无法使用 activerecord 方法解决它。我认为使用
include并接受总共 2 个 sql 查询是最好的解决方案,因为它比 SQL 方式简单。 -
@Albin 你能给我提示吗?
-
嗯,你的问题解决了吗?
标签: ruby-on-rails ruby ruby-on-rails-4 activerecord associations