我有以下型号
let pay = msg.payload.slice(4, -1).split(",");
let [r,g,b] = [...pay];
msg.payload = `rgb(${g},${b},${r})`;
return msg;
如上所述,用户可以确认参加活动。一个轨道是一组事件,一个事件可以属于多个轨道。我们说用户在确认参加该轨道下的所有事件时完成了该轨道。
我的问题是,有没有办法使用ActiveRecord查询界面查找用户已完成的所有曲目?
谢谢。
答案 0 :(得分:0)
您应该能够从曲目结尾开始查询,因为这是您要返回的输出:
user = User.first
Track.joins(events: :acknowledgements).where(complete: true, events: { acknowledgements: { user_id: user.id })
在这里,您渴望加载曲目的事件及其确认,以提高性能,然后(假设存在此列)检查曲目是否完整,并且事件的确认包含您的用户。
您在user_id
表中检查acknowledgements
的原因是避免必须在查询中预加载users
来提高性能。
希望有帮助-让我知道您的生活状况或有任何疑问。