Rails / Ahoy:跟踪从地理编码导出的其他数据

时间:2019-01-06 12:08:43

标签: ruby-on-rails ahoy

在Ahoy for Rails中,我想跟踪从Visit的现有数据派生的其他数据。 documentation建议覆盖track_visit方法。

但是,我需要使用的Visit数据是地理编码数据,执行track_visit时似乎还不存在。

具体地说,我在我的world_region_id表中添加了Visits列,它对应于我的应用程序中的WorldRegion模型。我想使用Visit.country字符串并将其映射到相应的WorldRegion。但是,以下代码始终使world_region_id成为nil

  def track_visit(data)
    data[:world_region_id] = WorldCountry.find_by_alias(data[:country])&.world_region_id
    super(data)
  end

({.find_by_alias可以使用任何国家名称字符串,包括常见的变体,以允许各种地理编码来源,例如“英国”和“大不列颠”将映射回相同的WorldCountry。)< / p>

先执行super,然后设置data[:world_region_id],结果相同。

地理编码本身可以正常工作,即当我检查数据库中的各个Visit时,将设置country等,但是world_region_id将为nil。当我用字符串替换world_region_id时,也可以使用派生data[:country]的方式。

所以看来问题出在执行顺序上。我应该在哪里或如何添加逻辑以成功使用Visit.country

0 个答案:

没有答案