恕我直言,对您来说最简单的方法是使用上面提到的https://github.com/charlotte-ruby/impressionist gem。如果我是你,我可能会用一些简单的动作单独控制器,只为你想要记录的轮播提供图像。
CarouselController < ApplicationController
impressionist :actions=>[:show]
def show
# u can also play with params[:id] to serve many images depending on id
send_file Rails.root.join("public", "file.gif"), type: "image/gif", disposition: "inline"
end
end
在您的应用程序中为此控制器设置路由后,您可以在客户端/js 代码上使用路由辅助路径,如 carousel_path(1) 或类似的东西来提供来自 rails 的图像
是的,当您使用轮播加载页面时,无论图片是在幻灯片 3 还是幻灯片 1 上,甚至显示,上述解决方案都会记录下来。如果您想记录此特定事件,那么您需要在可能的情况下使用轮播(幻灯片 3 显示)挂钩一些回调,然后触发对 rails 的一些自定义 ajax 调用以进行记录。如果您不能挂钩回调,那么您可能需要编写一些 javascript 代码来检查页面上的元素何时更改(幻灯片 3 显示)..