0

我将 Ahoy 与 Rails 应用程序集成,工作正常。我在访问模型中引入了一个新概念,即“visitor_email”,如果用户使用 URL 中的特定参数(在 /initializers/ahoy.rb 中设置)进入站点,则会设置该概念。这一切都很好。

除此之外,我想做的是用这个 visitor_email 创建一个 cookie。然后,如果用户返回该站点,该 cookie 将用于唯一标识用户(在 URL 中没有唯一参数,并且在 ahoy 访问过期之后) - 它将用于将相同的“visitor_email”分配给新的访问。

当然,我不能在 /initializers/ahoy.rb 中创建/使用这些 cookie。在 application_controller 的 before_action 中创建 cookie 很好,我猜。但是我不能使用 cookie 值以相同的方法在新访问中设置 visitor_email。处理此问题的首选方法是什么?

4

1 回答 1

1

我通过覆盖 Ahoy visit_controller 解决了这个问题 - 我在那里检查了 cookie,同时将 cookie 写入应用程序控制器

我从https://github.com/ankane/ahoy/blob/ba04a5bf7bd1fe6175381152d3e553141a448bbe/app/controllers/ahoy/visits_controller.rb复制了整个控制器,然后覆盖了相关部分。

确保将其放在项目的 /app/controllers/ahoy/ 中,并且路由会自行处理。

于 2019-06-28T20:06:47.600 回答