当前,用户可以使用以下链接在我的应用程序中下载ActiveStorage Blob:
link_to 'download', rails_blob_path(pj.document.file, disposition: 'attachment')
Run Code Online (Sandbox Code Playgroud)
但是,我想更新数据库中的属性,以便相关模型在首次下载文件时进行注册。该字段称为downloaded_at字段。
我做了以下尝试:
在数据库中添加了以下代码:
def download
@proofreading_job = ProofreadingJob.find(params[:id])
@proofreading_job.update(downloaded_at: Time.current) if current_user == @proofreading_job.proofreader.user
response.headers["Content-Type"] = @proofreading_job.document.file.content_type
response.headers["Content-Disposition"] = "attachment; #{@proofreading_job.document.file.filename.parameters}"
@proofreading_job.document.file.download do |chunk|
response.stream.write(chunk)
end
ensure
response.stream.close
end
Run Code Online (Sandbox Code Playgroud)但是,除了重定向到不是我想要的@proofreading_job页面之外,这没有任何作用。
有没有人这样做过,如果可以的话,我该如何完成这项任务。
我正在研究Rails 3中的一个项目,该项目需要对大量数据进行分页.分页大量数据(例如论坛帖子)以最大化性能的正确方法是什么?如果我只从一个集合中获取10个模型并在进入下一页时再次获取,那么服务器的工作量是否会过多?或者只是加载所有内容并使用javascript对它们进行分页会更好吗?