Ruby on rails 如何查找第一个提交的表单记录

Ruby on rails 如何查找第一个提交的表单记录,ruby-on-rails,Ruby On Rails,我正在从我的服务中获取类似的数据 [ {表单id:1,状态:0,创建日期:表单创建日期}, {form_id:1,status:4,created_at:first submitted date},//我想要的记录 {表单_id:1,状态:2,创建日期_:表单返回日期}, {表单id:1,状态:4,创建日期:表单重新提交日期}, {表单_id:2,状态:0,创建日期_:表单创建日期}, {form_id:2,status:4,created_at:first submitted date},/

我正在从我的服务中获取类似的数据

[
{表单id:1,状态:0,创建日期:表单创建日期},
{form_id:1,status:4,created_at:first submitted date},//我想要的记录
{表单_id:1,状态:2,创建日期_:表单返回日期},
{表单id:1,状态:4,创建日期:表单重新提交日期},
{表单_id:2,状态:0,创建日期_:表单创建日期},
{form_id:2,status:4,created_at:first submitted date},//我想要的记录
{form_id:2,status:2,created_at:date返回表单},
{表单id:2,状态:4,创建日期:表单重新提交日期},
{表单id:3,状态:0,创建日期:表单创建日期},
{form_id:3,status:4,created_at:first submitted date},//我想要的记录
{表单_id:3,状态:2,创建日期_:表单返回日期},
{表单id:3,状态:4,创建日期:表单重新提交日期},

]
我不知道这是否是最有效的方法,但这里有一个解决方案:

数组=[
{form_id:1,status:0,创建时间:Date.new(2020,2,25)},
{form_id:1,status:4,created_at:Date.new(2020,2,25)},#我想要的记录
{form_id:1,status:2,创建时间:Date.new(2020,2,26)},
{form_id:1,status:4,创建日期:Date.new(2020,2,27)},
{form_id:2,status:0,创建时间:Date.new(2020,3,25)},
{form_id:2,status:4,创建时间:Date.new(2020,3,26)},我想要记录
{form_id:2,status:2,创建日期:Date.new(2020,3,27)},
{form_id:2,status:4,创建日期:Date.new(2020,3,28)},
{form_id:3,status:0,创建时间:Date.new(2020,4,25)},
{form_id:3,status:4,created_at:Date.new(2020,4,26)},#记录我想要的
{form_id:3,status:2,创建日期:Date.new(2020,4,27)},
{form_id:3,status:4,创建日期:Date.new(2020,4,28)},
]
array.select{i | i[:status]==4}.group|u by{i | i[:form|u id]}.values.map{i | i.sort{a,b | a[:created|u at]b[:created|u at]}.first}
返回:
[{:form\u id=>1,:status=>4,:created\u at=>Tue,2020年2月25日},{:form\u id=>2,:status=>4,:created\u at=>Thu,2020年3月26日},{:form\u id=>3,:status=>4,:created\u at=>Sun,2020年4月26日}