ActiveRecord updates

Andrew Kane committed Jun 15, 2014
commit fd2726a9c25f931d2dbbea6c0a9ebd0f1054d770
Showing 7 changed files with 26 additions and 19 deletions
app/models/ahoy/event.rb +0 -10
@@ @@ -1,10 +0,0 @@
- module Ahoy
- class Event < ActiveRecord::Base
- self.table_name = "ahoy_events"
-
- belongs_to :visit
- belongs_to :user, polymorphic: true
-
- serialize :properties, JSON
- end
- end
ahoy/controller.rb b/lib/ahoy/controller.rb +1 -1
@@ @@ -21,8 +21,8 @@ module Ahoy
end
def set_ahoy_cookies
- ahoy.set_visit_cookie
ahoy.set_visitor_cookie
+ ahoy.set_visit_cookie
end
end
ahoy/stores/active_record_store.rb b/lib/ahoy/stores/active_record_store.rb +6 -1
@@ @@ -27,6 +27,7 @@ module Ahoy
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
e.name = name
@@ @@ -36,7 +37,11 @@ module Ahoy
yield(event) if block_given?
- event.save!
+ begin
+ event.save!
+ rescue ActiveRecord::RecordNotUnique
+ # do nothing
+ end
end
def current_visit
ahoy/tracker.rb b/lib/ahoy/tracker.rb +2 -2
@@ @@ -64,7 +64,7 @@ module Ahoy
expires: 4.hours.from_now
}
cookie[:domain] = Ahoy.domain if Ahoy.domain
- controller.response.set_cookie(:ahoy_visit, cookie)
+ controller.response.set_cookie("ahoy_visit", cookie)
end
end
@@ @@ -75,7 +75,7 @@ module Ahoy
expires: 2.years.from_now
}
cookie[:domain] = Ahoy.domain if Ahoy.domain
- controller.response.set_cookie(:ahoy_visitor, cookie)
+ controller.response.set_cookie("ahoy_visitor", cookie)
end
end
generators/ahoy/stores/active_record_events_generator.rb b/lib/generators/ahoy/stores/active_record_events_generator.rb +1 -1
@@ @@ -27,7 +27,7 @@ module Ahoy
end
def generate_model
- template "../../../../../app/models/ahoy/event.rb", "app/models/ahoy/event.rb"
+ template "active_record_event_model.rb", "app/models/ahoy/event.rb"
end
def create_initializer
generators/ahoy/stores/templates/active_record_event_model.rb b/lib/generators/ahoy/stores/templates/active_record_event_model.rb +10 -0
@@ @@ -0,0 +1,10 @@
+ module Ahoy
+ class Event < ActiveRecord::Base
+ self.table_name = "ahoy_events"
+
+ belongs_to :visit
+ belongs_to :user
+
+ # serialize :properties, JSON
+ end
+ end
vendor/assets/javascripts/ahoy.js +6 -4
@@ @@ -21,6 +21,8 @@
var canStringify = typeof(JSON) !== "undefined" && typeof(JSON.stringify) !== "undefined";
var eventQueue = [];
var page = ahoy.page || window.location.pathname;
+ var visitsUrl = ahoy.visitsUrl || "/ahoy/visits"
+ var eventsUrl = ahoy.eventsUrl || "/ahoy/events"
// cookies
@@ @@ -102,7 +104,7 @@
if (canStringify) {
$.ajax({
type: "POST",
- url: "/ahoy/events",
+ url: eventsUrl,
data: JSON.stringify([event]),
contentType: "application/json; charset=utf-8",
dataType: "json",
@@ @@ -170,18 +172,18 @@
log(data);
- $.post("/ahoy/visits", data, setReady, "json");
+ $.post(visitsUrl, data, setReady, "json");
} else {
log("Cookies disabled");
setReady();
}
}
- ahoy.getVisitToken = function () {
+ ahoy.getVisitId = function () {
return visitId;
};
- ahoy.getVisitorToken = function () {
+ ahoy.getVisitorId = function () {
return visitorId;
};