ruby-on-rails - 现有应用程序中大量模型的 IP 地址记录

标签 ruby-on-rails logging ip-address

我有一个现有的应用程序,它有很多很多模型。我想记录创建它们的用户的 IP 地址,主要目的是帮助清除垃圾邮件发送者或其他滥用用户的方法(如果我不知道他们使用的 IP 地址,我可以'阻止它)。随着时间的推移,我需要跟踪这些内容,因为用户可能会从家里、办公室、他们的电话等访问,我想查看使用模式。绘制出用户访问的位置或其他内容可能也很有趣,但此时任何副作用都纯粹是想法。

我们使用基于 cookie 的方法来存储用户 session 。

我可以想到两种方法(我将创建它们作为回复以便人们可以投票):

  1. 为每个模型添加IP地址属性,并传入
  2. 使用观察者或 after_save 回调调用的某种 Logger 模型

想法?有更好的方法吗?做这个的插件?谢谢!!

最佳答案

我会为此使用多态关联,然后您可以将其应用于所有需要跟踪的模型。这样可以将向每个模型添加 IP 地址列的困惑情况降至最低,并将显着减少代码库中的重复数量。然后走观察者路线可能是连接模型的最简单方法。

关于ruby-on-rails - 现有应用程序中大量模型的 IP 地址记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/478355/

相关文章:

.net - 什么决定了 System.Net.IPAddress.ToString() 的 IPv6 地址格式?

iOS项目的Swift Building IP 4地址类

ruby-on-rails - 在 ruby​​ on rails 应用程序中从 redis 迁移到 mongodb

ruby-on-rails - 从 App Proxy 调用 Shopify API

java - 如何为 csv java 记录器文件设置 header 。使用记录器 java.util.logging.Logger

sql - Oracle SQLPlus : Echo without line numbers?

ruby-on-rails - request.remote_ip 返回错误的 ip

ruby-on-rails - 为什么人们大多包装 I18n.t 方法而不是委托(delegate)?

ruby-on-rails - 安排后台作业而不重复

android - 如何在 Chrome(ARC Welder)上捕获在 Android Runtime 上运行的 Android 应用程序日志?