我有3个型号:
用户
class User < ActiveRecord::Base
has_many :events
has_many :trainings, through: :events
end
事件
class Event < ActiveRecord::Base
belongs_to :user
belongs_to :training
end
培训
class Training < ActiveRecord::Base
has_many :events
has_many :user, through: :events
end
在我的Event表中有user_id和training_id,但也有日期。此日期表示用户进行特定培训的日期。
对于每个用户,我想选择与不同培训相对应的最新事件。例如,特定用户可能已接受过基本生命支持方面的培训,例如2015年和2016年,但我只想选择2016年。我尝试过使用示波器,但它似乎无法正常工作。
任何人都可以帮我吗?
答案 0 :(得分:0)
我们假设你有变量user
要找到他最近的活动:
user.events.order(:date).first
要查找他最近的特定培训事件:
user.trainings.find_by(subject: "life_support").events.order(:date).first
rails团队也有关于此主题的精彩指南:http://guides.rubyonrails.org/active_record_querying.html