根据rails中的条件从相关表中获取最后一条记录

时间:2019-03-30 15:03:58

标签: ruby-on-rails activerecord

我的rails应用程序中有两个表。

  1. 任务
  2. tasks_statuses

下面是记录

任务表 id task_name date 1 A 2019-03-30 2 B 2019-03-30 3 C 2019-03-30

task_statuses表 id task_id status_id 1 1 1 2 1 2 3 1 3 4 2 1 5 1 4 6 2 2 Status Id and there meaning 1 Started 2 Running 3 Pause 4 Complete

现在, 如果我使用status_id 2(Running)搜索,在这种情况下应该返回task_id 2 如果我使用status_id 4(完整)进行搜索,则应该返回task_id 1

有人可以帮助实现这一目标吗?

谢谢。

1 个答案:

答案 0 :(得分:0)

我能够通过

实现
  

任务= task.joins(:task_statuses).where('task_statuses.status_id =?   AND task_statuses.status_id =(从中选择max(status_id)   task_statuses,其中task_statuses.task_id = task.id)',   params [:status_id])