Ruby on rails 检索与联接表的多对多关联中的最后版本

Ruby on rails 检索与联接表的多对多关联中的最后版本,ruby-on-rails,ruby,activerecord,Ruby On Rails,Ruby,Activerecord,我有三个模型,任务,里程碑和细节。 为了记录任务的历史记录,每次任务或里程碑更改时,都会在连接(联接)表中创建一条新的详细信息记录 我的问题是创建一个可链接查询,以检索有关每个任务的最新信息。使用.group已经工作了一段时间: @most_recent_details = Detail.order("updated_at DESC").group(:task_id) 但当我尝试进一步筛选该集合(例如验证某个里程碑的存在)时,上述排序将被忽略,并返回未包含在集合中的较旧记录: @mos

我有三个模型,任务,里程碑和细节。 为了记录任务的历史记录,每次任务或里程碑更改时,都会在连接(联接)表中创建一条新的详细信息记录

我的问题是创建一个可链接查询,以检索有关每个任务的最新信息。使用.group已经工作了一段时间:

  @most_recent_details = Detail.order("updated_at DESC").group(:task_id)
但当我尝试进一步筛选该集合(例如验证某个里程碑的存在)时,上述排序将被忽略,并返回未包含在集合中的较旧记录:

  @most_recent_details.where(milestone_id: 2)

任务
有很多:细节

里程碑
有很多:细节

细节
属于:任务
属于:里程碑
属性可访问:任务标题,:任务id,:里程碑id

更新 为了进一步澄清这个问题,我希望应用程序能够以有效的方式实现以下目标:


查找每个里程碑的每个任务,如果该任务对应的最新详细信息没有说明没有任何已分配的里程碑。

似乎使用
有很多通过:
将非常适合这里。如果你需要更多的信息,请告诉我是的,:through可能会有所帮助。但这只是朝着正确方向迈出的一步。我们已经更新了这个问题。