Class: Visit

Inherits:
ActiveRecord::Base
  • Object
show all
Defined in:
app/models/visit.rb

Class Method Summary collapse

Class Method Details

.also_visit(object) ⇒ Object



43
44
45
# File 'app/models/visit.rb', line 43

def self.also_visit(object)
  object.visits.where(["visitable_id <> ?",object.id]).where(["user_id IN (SELECT user_id from #{table_name} WHERE visitable_id = ? AND visitable_type = ?)",object.id,object.class.name]).order("visit_count DESC")
end

.visit(object, controller, options = {}) ⇒ Object



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