2015-06-20 68 views
0

说一个应用程序有许多产品和搜索功能。 1.我如何跟踪每个产品的页面浏览量(简单计数器)和 2.如何跟踪搜索查询?Rails - 跟踪未登录的用户活动

最重要的是,我需要能够按页面浏览次数查找/订购产品。

(更简单/最佳性能/最少外部依赖性)越好!

为什么这个问题?到目前为止,我所见过的解决方案都是过时的宝石,或者在搜索时效果不佳。

回答

0

这是一个简单的方法来做到这一点。在该模型中:

def increment(by = 1) 
    self.views ||= 0 #Prevents error if views can be nil 
    self.views += by 
    self.save 
end 

然后在控制器:

如果拍成一个异步工作,我仍然需要做
@model.increment 

更快。

为了防止用户滥发刷新或东西我做了一个比较复杂一点:

def show 
    product_itemcode = params[:itemcode] 
    @product = Product.find_by(itemcode: product_itemcode) 

    unless session[product_itemcode.to_s] 
     @product.increment 
     session[product_itemcode.to_s] = true 
    end 
    end 

有什么想法?

编辑:

的增量方法已经存在: http://apidock.com/rails/ActiveRecord/Persistence/increment

您仍需要调用object.save虽然