我得到错误:NameError(未初始化常量SnowproverTracker::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发射器和跟踪器不会抛出错误。以下是更多上下文:
- 使用Ruby 2.5.5
- gemfile包含所有需求,并且是捆绑的
我解决了这个问题。在我的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
告诉我该使用哪一个。