gpt4 book ai didi

ruby-on-rails - 在 Rails 中创建一个简单的计数器

转载 作者:数据小太阳 更新时间:2023-10-29 08:09:16 27 4
gpt4 key购买 nike

我一直在尝试实现 gem Impressionist ,但由于文档令人困惑,并且 gem 为我的简单用例带来了一些开销,我想知道如何自己实现它?

  • 我想跟踪 Controller 中特定操作的印象(请求)。

  • 展示次数不必由唯一身份访问者记录。

  • 我需要模型中每条记录的计数器都是唯一的(即商店 1:34 次点击,商店 2:77 次点击等)。

  • 计数器不应包含来自此列表中机器人的请求:http://www.user-agents.org/allagents.xml

完成上述任务所需的最少代码是多少?

更新

澄清一下,如果可能的话,我不想使用 gem 印象派。我只是以此作为序曲来描述我要解决的问题。

最佳答案

您需要向您的模型添加一个属性。

如果您正在使用 Impressionsit gem,您应该 use the built-in migration generator将正确的方案添加到您的数据库。

否则,如果您不打算使用此 gem,则需要创建如下所示的迁移:

MyMigration < ActiveRecord::Migration
def change
add_column :pluralized_model_eg_users, :integer, default: 0
end
end

然后,在您要计算的操作上,使用代码:

unless request.env["HTTP_USER_AGENT"].match(/\(.*https?:\/\/.*\)/)
@model.update_attribute :impressions, @model + 1
end

它甚至不使用您提供的列表以避免开销。然而,most robots have an url in his user agent to identify then ,所以使用它应该是安全的。

使用此站点的列表需要您向该列表添加缓存,如果它的目标是成为一个简单的功能,这可能会在您的代码中增加不必要的复杂性。

关于ruby-on-rails - 在 Rails 中创建一个简单的计数器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18601820/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com