我们需要找到一个存储页面指标的好地方作为rails页面加载。它将包括统计数据,最初使用某些慢速方法的次数。我们目前在ApplicationController上使用了一个类变量,但这似乎是代码味道。有更好的方法吗?
class ApplicationController < ActionController::Base
cattr_accessor :page_stats
def increment_slow_stuff()
@@page_stats ||= {}
@@page_stats[:slow_stuff] ||= 0
@@page_stats[:slow_stuff] += 1
end
def slow_method()
increment_slow_stuff()
...
end
end
答案 0 :(得分:1)
这种做法的问题在于,只有班级,统计数据才会存在。我建议写一个数据库,甚至是Redis。
您还可以使用this Railscast
中显示的技术订阅这些事件,以便代码不在您的控制器中答案 1 :(得分:1)
为什么不使用实例变量?如果您以后需要将其存储更长时间,则可以始终在网页浏览结束时保存记录。此外,PageStats模型可让您对指标进行更高级的分析。