16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
|
# File 'app/models/visit.rb', line 16
def self.visit(object,controller,options = {})
options.assert_valid_keys :user_only
options.reverse_merge! :user_only => false
user = controller.send(:current_user)
ip = controller.request.remote_ip
session_id = controller.session[:session_id]
if user
visit = Visit.find_or_initialize_by_user_id_and_visitable_type_and_visitable_id(user.id,object.class.name,object.id)
visit.session_id = session_id
visit.ip = ip
visit.visitable = object
visit.visit_count = visit.visit_count.to_i + 1
visit.last_visit_at = Time.now
visit.save
else
unless options[:user_only]
visit = Visit.find_or_initialize_by_session_id_and_visitable_type_and_visitable_id(session_id,object.class.name,object.id)
visit.session_id = session_id
visit.ip = ip
visit.visitable = object
visit.visit_count = visit.visit_count.to_i + 1
visit.last_visit_at = Time.now
visit.save
end
end
end
|