我想跟踪用户访问网站的次数。如果先前的访问时间超过 30 分钟,则访问计数器(用户模型的一部分)会增加。我正在使用 Rails 和设计:
class ApplicationController < ActionController::Base
before_filter :authenticate_user!
before_filter :update_visits
def update_visits
current_user.increment!(:visits) if !current_user.nil? && current_user.updated_at < 30.minutes.ago
end
end
这会很好用,除非我设计了 :rememberable 已打开。所以来自 :authenticate_user 的 SQL 调用序列!这是:
SELECT "users".* FROM "users" WHERE "users"."email" = 'person_1@example.com' LIMIT 1
更新“用户”设置“remember_created_at”='2012-11-21 20:13:53.011322',“updated_at”='2012-11-21 20:13:53.012791'其中“用户”。“id”= 1
因此,visits 变量永远不会增加,因为 updated_at 在可记忆调用中设置为当前时间。如何在身份验证之后但在可记住之前进行 update_visits 调用?
谢谢