ログイン、ログアウト、不正アクセス、間違ったパスワード、公開されたコンテンツなどのイベントをログに記録するシステム イベント追跡機能を開発しています。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 オブジェクトにアクセスする方法は何ですか?
イベントモデルはリクエストが存在する必要がないことに注意してください-利用可能であればそれを処理したいだけです