0

ログイン、ログアウト、不正アクセス、間違ったパスワード、公開されたコンテンツなどのイベントをログに記録するシステム イベント追跡機能を開発しています。remote_ip、セッション ID、リクエスト タイプなどのリクエスト データを取得したいと考えています。

理想的には、モデル内のリクエスト データにアクセスするのではなく、次のようにコントローラーに渡す必要があることを理解しています。

記事#編集:

@article.update_attributes(params[:article])
Event.create(:eventable => @article, :request => request)

ただし、多くの場合、イベントは rake タスクまたはコンソールで作成されるため、このコードをコントローラーから取り出して、次のようにモデルに組み込みたいと考えています。

class Article
  after_save :create_event

  def create_event
    Event.create(:message => "aritcle_updated")
  end
end

次に Event クラスで:

class Event
   before_create :record_ip_address

   def record_ip_address
     # This is how I want it, I don't know how to access request here!
     self.ip = request.remote_ip # How to access request?
   end
end

それを達成するための最良の方法と、モデルで Request オブジェクトにアクセスする方法は何ですか?

イベントモデルはリクエストが存在する必要がないことに注意してください-利用可能であればそれを処理したいだけです

4

0 に答える 0