remove unnecessary count query for post_versions listing
This commit is contained in:
1
Gemfile
1
Gemfile
@@ -35,4 +35,5 @@ group :development do
|
||||
gem 'ruby-prof'
|
||||
gem 'pry'
|
||||
gem 'awesome_print'
|
||||
gem 'term-ansicolor'
|
||||
end
|
||||
|
||||
@@ -159,6 +159,7 @@ GEM
|
||||
super_exception_notifier (3.0.13)
|
||||
actionmailer
|
||||
rake
|
||||
term-ansicolor (1.0.7)
|
||||
therubyracer (0.11.3)
|
||||
libv8 (~> 3.11.8.12)
|
||||
ref
|
||||
@@ -207,6 +208,7 @@ DEPENDENCIES
|
||||
simple_form
|
||||
simplecov
|
||||
super_exception_notifier
|
||||
term-ansicolor
|
||||
therubyracer
|
||||
uglifier (>= 1.0.3)
|
||||
whenever
|
||||
|
||||
@@ -2,8 +2,7 @@ class PostVersionsController < ApplicationController
|
||||
respond_to :html, :xml, :json
|
||||
|
||||
def index
|
||||
@search = PostVersion.search(params[:search])
|
||||
@post_versions = @search.order("updated_at desc").paginate(params[:page], :count => 1_000_000)
|
||||
@post_versions = PostVersion.search(params[:search]).order("updated_at desc").paginate(params[:page], :count => 1_000_000)
|
||||
respond_with(@post_versions)
|
||||
end
|
||||
|
||||
|
||||
@@ -34,6 +34,7 @@ module PaginationHelper
|
||||
1.upto(records.total_pages) do |page|
|
||||
html << numbered_paginator_item(page, records.current_page)
|
||||
end
|
||||
|
||||
elsif records.current_page <= window + 2
|
||||
1.upto(records.current_page + window) do |page|
|
||||
html << numbered_paginator_item(page, records.current_page)
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
<div id="a-index">
|
||||
<h1>Changes</h1>
|
||||
|
||||
<% if @post_versions.empty? %>
|
||||
<% if @post_versions.all.empty? %>
|
||||
<%= render "post_sets/blank" %>
|
||||
<% else %>
|
||||
<%= render "listing", :post_versions => @post_versions %>
|
||||
|
||||
84
config/initializers/query_trace.rb
Normal file
84
config/initializers/query_trace.rb
Normal file
@@ -0,0 +1,84 @@
|
||||
# yields a stacktrace for each SQL query
|
||||
# put this file in config/initializers
|
||||
class QueryTrace < ActiveSupport::LogSubscriber
|
||||
include Term::ANSIColor
|
||||
attr_accessor :trace_queries
|
||||
|
||||
def sql(event) #:nodoc:
|
||||
return unless QueryTrace.enabled? && logger.debug? && Rails.env.development?
|
||||
stack = Rails.backtrace_cleaner.clean(caller)
|
||||
first_line = stack.shift
|
||||
return unless first_line
|
||||
|
||||
msg = prefix + bold + cyan + "#{first_line}\n" + reset
|
||||
msg += cyan + stack.join("\n") + reset
|
||||
debug msg
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.enabled?
|
||||
#
|
||||
# yields boolean if SQL queries should be logged or not
|
||||
|
||||
def self.enabled?
|
||||
defined?(@trace_queries) && @trace_queries
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.status
|
||||
#
|
||||
# yields text if QueryTrace has been enabled or not
|
||||
|
||||
def self.status
|
||||
QueryTrace.enabled? ? 'enabled' : 'disabled'
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.enable!
|
||||
#
|
||||
# turn on SQL query origin logging
|
||||
|
||||
def self.enable!
|
||||
@trace_queries = true
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.disable!
|
||||
#
|
||||
# turn off SQL query origin logging
|
||||
|
||||
def self.disable!
|
||||
@trace_queries = false
|
||||
end
|
||||
|
||||
# :call-seq:
|
||||
# Klass.toggle!
|
||||
#
|
||||
# Toggles query tracing yielding a boolean indicating the new state of query
|
||||
# origin tracing
|
||||
|
||||
def self.toggle!
|
||||
enabled? ? disable! : enable!
|
||||
enabled?
|
||||
end
|
||||
|
||||
protected
|
||||
|
||||
def prefix #:nodoc:
|
||||
bold(magenta('Called from: ')) + reset
|
||||
end
|
||||
end
|
||||
|
||||
QueryTrace.attach_to :active_record
|
||||
|
||||
trap('QUIT') do
|
||||
# Sending 2 backspace characters removes the ^\ that is
|
||||
# printed to the console.
|
||||
rm_noise = "\b\b"
|
||||
|
||||
QueryTrace.toggle!
|
||||
puts "#{rm_noise}=> QueryTrace #{QueryTrace.status}"
|
||||
end
|
||||
|
||||
QueryTrace.enable! if ENV['QUERY_TRACE']
|
||||
puts "=> QueryTrace #{QueryTrace.status}; CTRL-\\ to toggle"
|
||||
Reference in New Issue
Block a user