我的任务是在服务中获取一些记录。记录是表单的历史记录。我需要查找某些月份之间的所有表格,这是第一次“状态” === 0(0 =进行中的表格,4 =完成的表格)。我需要设计有关此服务的优雅解决方案的帮助。
表单记录基本上是这样的{数据:{很多表格信息},状态:0,已更新,已创建,等}
用伪代码,我想要这样的东西
myService.getFirstSubmittedForms('12 / 31/18','2/31/19')//这将返回所有第一个提交的表单
getFirstSubmittedForm将执行类似的过程:
查找给定月份范围内的所有表单,其中status === 4 //可以多次/返回/提交表单摆脱重复并获得最早的记录
谢谢
到目前为止,我有
beginning_of_month = DateTime.new(start_date[:year], start_date[:month], start_date[:day])
end_of_month = DateTime.new(end_date[:year], end_date[:month], end_date[:day])
FormHistoryRecord.where(created_at: beginning_of_month..end_of_month)
我的下一步是找到状态== 4(已提交)的每种表单的第一条记录
这是我要返回的数据的示例
[
{form_id: 1, status: 0, created_at: date form was created},
{form_id: 1, status: 4, created_at: first submitted date}, //record i want
{form_id: 1, status: 2, created_at: date form was returned},
{form_id: 1, status: 4, created_at: date form was resubmitted},
{form_id: 2, status: 0, created_at: date form was created},
{form_id: 2, status: 4, created_at: first submitted date}, //record i want
{form_id: 2, status: 2, created_at: date form was returned},
{form_id: 2, status: 4, created_at: date form was resubmitted},
{form_id: 3, status: 0, created_at: date form was created},
{form_id: 3, status: 4, created_at: first submitted date}, //record i want
{form_id: 3, status: 2, created_at: date form was returned},
{form_id: 3, status: 4, created_at: date form was resubmitted},
]
我会做这样的事情:
first_submission_date
的新属性关于用户首次提交其实际记录的时间,该记录将存储在updated_at
中,但是每当再次对其进行编辑时将被覆盖。您应该分别跟踪该第一次提交的数据。