Someone got some trouble "no implicit conversion of Hash into String" after upgraded properties field from json to jsonb type in Ahoy. Or you can follow this issue#86 or issue#120.
There is a easy way to fix it. Just add following content in ahoy related class:
# config/initializers/ahoy.rb
class Ahoy::Store < Ahoy::Stores::ActiveRecordStore
def track_event(name, properties, options, &block)
event =
event_model.new do |e|
e.id = options[:id]
e.visit_id = ahoy.visit_id
e.user = user if e.respond_to?(:user=)
e.name = name
e.properties = properties.to_json # the keypoint
e.time = options[:time]
end
yield(event) if block_given?
begin
event.save!
rescue *unique_exception_classes
# do nothing
end
end
end
The key point is the track_event, just override it and convert the type for properties assignment.