blob: 1848bbc8509413a1bbaf1c80de55e33519809a3a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
class RouteObserver < ActiveRecord::Observer
observe Chouette::Route
def after_save(route)
Rails.logger.debug "after_save #{route.inspect}"
if route.opposite_route_id
Rails.logger.debug "dereference_opposite_route all routes except #{route.opposite_route_id}"
route.line.routes.where("id <> ?", route.opposite_route_id).where(opposite_route_id: route).update_all(opposite_route_id: nil)
Rails.logger.debug "reference_opposite_route #{route.opposite_route_id}"
route.opposite_route.update_column :opposite_route_id, route
else
Rails.logger.debug "dereference_opposite_route all routes associated to #{route.id}"
route.line.routes.where(opposite_route_id: route).update_all(opposite_route_id: nil)
end
end
def before_destroy(route)
Rails.logger.debug "after_destroy(#{route.inspect})"
route.line.routes.where(opposite_route: route).update_all(opposite_route_id: nil)
end
end
|