在使用 active storage 上传文件后,难免要对上传的文件进行后续的管理,譬如重命名,譬如归类,譬如增加标识等等,但是文件上传后,从文件列表中,怎么判断这个文件是新上传的文件呢?
经过查询 api,发觉 new_record?方法并不适合,但是 rails 提供了一个非常对应的方法 previously_new_record?完美解决了这个问题,如果此对象刚刚创建,则返回 true,也就是说,在上次保存之前,该对象在数据库中不存在,会返回真。
if @todo_item.update(todo_item_params)
@todo_item.files.each do |file|
if file.previously_new_record?
@new_files << file
end
end