小编Edw*_*ard的帖子

用户下载ActiveStorage Blob附件时如何更新数据库?

当前,用户可以使用以下链接在我的应用程序中下载ActiveStorage Blob:

link_to 'download', rails_blob_path(pj.document.file, disposition: 'attachment')
Run Code Online (Sandbox Code Playgroud)

但是,我想更新数据库中的属性,以便相关模型在首次下载文件时进行注册。该字段称为downloaded_at字段。

我做了以下尝试:

  1. 在更新模型时,将link_to> button_to更改为。
  2. 添加了适当的路线
  3. 在数据库中添加了以下代码:

    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页面之外,这没有任何作用。

有没有人这样做过,如果可以的话,我该如何完成这项任务。

ruby-on-rails-5 rails-activestorage

5
推荐指数
1
解决办法
58
查看次数

正确分页大量数据的方法

我正在研究Rails 3中的一个项目,该项目需要对大量数据进行分页.分页大量数据(例如论坛帖子)以最大化性能的正确方法是什么?如果我只从一个集合中获取10个模型并在进入下一页时再次获取,那么服务器的工作量是否会过多?或者只是加载所有内容并使用javascript对它们进行分页会更好吗?

javascript ruby-on-rails paginate

1
推荐指数
1
解决办法
932
查看次数