0

私は現在Rails v2.3.5を仕事で使用していますが、言語とフレームワークの両方にまったく慣れていません。私がする必要があるのは、ユーザーが Web ページを要求するたびに特定の情報 (ユーザーの IP アドレス、アクセスした URL、アクセスの日時、ページのレンダリングにかかった時間) を取得し、データベースに保存することです。

この情報はすべてデフォルトの Rails のログファイルに含まれていることに気付きましたが、この情報を収集するためにログファイルを解析する必要がないようにしています。私が望むのは、ロガーにフックしてこの情報を傍受するか、おそらくロガーを拡張して、デフォルトの Rails のもの (ActiveSupport::BufferedLogger) の代わりに拡張バージョンを使用する方法です。

ログを必要としない他のソリューションはありますか?

前もって感謝します。

4

1 に答える 1

0

おそらく必要なのは、必要before_filterなアクションを実行するための ApplicationController 内のブロックです。そこから、必要なデータベース レコードを作成できます。例えば:

class ApplicationController < ActionController::Base
  before_filter :log_user_info

protected
  def log_user_info
    # Activate a custom logging method on a model
    UserActivity.log!(
      # ... User parameters
    )
  end
end

ロガーにフックすることは、その情報を取得するための間接的な方法であるため、おそらく悪い考えです。ただし、歴史的な理由から、これからデータを抽出する必要がある場合があります。

于 2012-06-04T19:39:09.913 に答える