0

ユーザーがダウンロードリンクをクリックしたときにログに記録されるダウンロードアクションがコントローラーにあります。ダウンロードが完了するまでにかかった時間、または少なくともダウンロードが成功したことを追跡する方法はありますか?

コントローラ(Rails 3.2.8)でのダウンロードアクションは次のとおりです。

def download
    send_file @download.attachment.path, :filename => @download.attachment_file_name,
                                         :content_type => @download.attachment_content_type

    DownloadsLog.debug "log details here! -- at #{Time.now}"
end

downloads_log.rbモデル

class DownloadsLog
  def self.debug(message=nil)
    @@downloads_log ||= Logger.new("#{Rails.root}/log/downloads.log", 10, 1024000)
    @@downloads_log.debug(message) unless message.nil?
  end
end

不可能かもしれませんが、誰かアイデアがあれば聞いてみようと思いました...

ありがとう!

4

1 に答える 1

1

Rails 3では、コードのセクションをブロックにラップし、それをメソッドに提供しbenchmarkます。

benchmark "<My identifying label>" do
  # do this and that...
end

ログには、ブロックの実行にかかった時間を示す行が表示されます。

<My identifying label> (138.8ms)

これをビューで使用することもできます。

<% benchmark "Process data files" do %>
  <%= expensive_files_operation %>
<% end %>
于 2012-11-06T00:58:17.420 に答える