gpt4 book ai didi

ruby-on-rails - Ruby on Rails - Has_many 通过连接表属性限制和排序

转载 作者:太空宇宙 更新时间:2023-11-03 16:44:07 24 4
gpt4 key购买 nike

我有 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

在我的事件表中有 user_id 和 training_id 还有一个日期。此日期表示用户接受特定培训的日期。

对于每个用户,我想选择对应于不同训练的最近事件。例如,某个特定用户可能在 2015 年和 2016 年接受过基本生命支持培训,但我只想选择 2016 年的培训。我试过使用范围,但它似乎不起作用。

谁能帮我解决这个问题?

最佳答案

假设您有变量 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

关于ruby-on-rails - Ruby on Rails - Has_many 通过连接表属性限制和排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37899629/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com