Ruby on rails 在一个页面加载中执行两个restful操作

Ruby on rails 在一个页面加载中执行两个restful操作,ruby-on-rails,ruby-on-rails-3,rest,Ruby On Rails,Ruby On Rails 3,Rest,我有两种型号,文件和下载。在相同的页面加载中,我想读取文件(将其提供给用户)并创建下载 我可以这样做: GET/file/:id PUT/file/:id/download 2已重定向到1 有没有处理这种情况的正确方法?让您的文件下载链接指向:下载操作,您可以在其中记录下载,然后呈现您的文件: def download DownloadLog.create(...) render :file => ...... end 我怀疑您需要的只是文件控制器上的后过滤器。大致如下: a

我有两种型号,
文件
下载
。在相同的页面加载中,我想读取
文件
(将其提供给用户)并创建
下载

我可以这样做:

  • GET/file/:id
  • PUT/file/:id/download
  • 2已重定向到1

  • 有没有处理这种情况的正确方法?

    让您的文件下载链接指向:下载操作,您可以在其中记录下载,然后呈现您的文件:

    def download
      DownloadLog.create(...)
      render :file => ......
    end
    

    我怀疑您需要的只是文件控制器上的
    后过滤器。大致如下:

      after_filter :log_download, :only => :show
    
      protected
      def log_download
        # code to log a download after the show action
      end
    

    这比尝试将请求链接在一起以获得相同的效果要简单得多。

    “创建下载”——您的意思是在响应中加载一个已下载的文件?另外,当你说你想要两个响应时——一个响应是正在显示的文件和屏幕,另一个是下载?有点混乱。我保存所有下载的日志,所以创建下载意味着创建下载日志记录。我不想要两个响应,但我想根据两个资源来操作—读取一个文件,并创建一个下载记录。