首页 > 解决方案 > NameError(未初始化的常量 SnowplowTracker::SelfDescribingJson):在 ruby​​ 中制作扫雪机跟踪器时

问题描述

我收到错误:NameError(未初始化的常量 SnowplowTracker::SelfDescribeingJson):当我尝试在 ruby​​ 中初始化描述 JSON 的自我时。下面是一些失败的示例代码:

require 'snowplow-tracker'
require 'contracts'
require 'webmock'

e = SnowplowTracker::Emitter.new('com.acme')
t = SnowplowTracker::Tracker.new(e)
t.track_self_describing_event(SnowplowTracker::SelfDescribingJson.new(
  "iglu:com.example_company/save_game/jsonschema/1-0-2",
  {
    "saveId" => "4321",
    "level" => 23,
    "difficultyLevel" => "HARD",
    "dlContent" => true
  }
))

Strangly Emitter 和 Tracker 不会抛出错误。这里有更多的上下文:

标签: ruby-on-railsrubysnowplow

解决方案


我解决了这个问题。在我的 gemfile 中,我有:

    gem 'contracts', '~> 0.16.0'
    gem 'webmock', '~> 3.8', '>= 3.8.3'
    gem 'snowplow-tracker'

本来应该:

    gem 'contracts', '~> 0.11.0'
    gem 'webmock', '~> 3.8', '>= 3.8.3'
    gem 'snowplow-tracker', '~> 0.6.1'

如果您收到此错误,请检查此处可用的版本:https ://rubygems.org/gems/snowplow-tracker/versions/0.6.1

跟踪器还依赖于旧版本的合同,但bundle会告诉我要使用哪一个。


推荐阅读