diff --git a/app/controllers/visitors_controller.rb b/app/controllers/visitors_controller.rb index b9f916b..194a6b0 100644 --- a/app/controllers/visitors_controller.rb +++ b/app/controllers/visitors_controller.rb @@ -1,11 +1,16 @@ +require 'will_paginate/array' + class VisitorsController < InheritedResources::Base respond_to :xml, :json before_filter :authenticate actions :index def index - cond = params[:question_id] ? "question_id = #{params[:question_id]}" : nil - + cond = nil + if params[:question_id] + Question.find(params[:question_id]) + cond = "question_id = #{params[:question_id]}" + end counts = {} if params[:votes_count] counts[:votes_count] = Vote.count(:conditions => cond, :group => "voter_id") @@ -41,7 +46,15 @@ class VisitorsController < InheritedResources::Base counts.each_pair do |attr,values| @visitors.each{ |v| v[attr] = values[v.id] || 0 } end + + if(params[:page]) + @visitors = WillPaginate::Collection.create(params[:page], params[:page_size] || 10, @visitors.length) do |pager| + result = @visitors.slice(pager.offset, pager.per_page) + result ? pager.replace(result) : nil + end + end + index! end diff --git a/app/models/vote.rb b/app/models/vote.rb index 08809ef..4819337 100644 --- a/app/models/vote.rb +++ b/app/models/vote.rb @@ -1,3 +1,4 @@ +require 'will_paginate' class Vote < ActiveRecord::Base # belongs_to :voteable, :polymorphic => true, :counter_cache => true validates_presence_of :question @@ -19,7 +20,7 @@ class Vote < ActiveRecord::Base named_scope :active, :include => :choice, :conditions => { 'choices.active' => true } named_scope :active_loser, :include => :loser_choice, :conditions => { 'choices.active' => true } - default_scope :conditions => {"#{table_name}.valid_record" => true } + default_scope :conditions => {"valid_record" => true } serialize :tracking -- libgit2 0.21.2