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 'ruby-prof'
|
||||||
gem 'pry'
|
gem 'pry'
|
||||||
gem 'awesome_print'
|
gem 'awesome_print'
|
||||||
|
gem 'term-ansicolor'
|
||||||
end
|
end
|
||||||
|
|||||||
@@ -159,6 +159,7 @@ GEM
|
|||||||
super_exception_notifier (3.0.13)
|
super_exception_notifier (3.0.13)
|
||||||
actionmailer
|
actionmailer
|
||||||
rake
|
rake
|
||||||
|
term-ansicolor (1.0.7)
|
||||||
therubyracer (0.11.3)
|
therubyracer (0.11.3)
|
||||||
libv8 (~> 3.11.8.12)
|
libv8 (~> 3.11.8.12)
|
||||||
ref
|
ref
|
||||||
@@ -207,6 +208,7 @@ DEPENDENCIES
|
|||||||
simple_form
|
simple_form
|
||||||
simplecov
|
simplecov
|
||||||
super_exception_notifier
|
super_exception_notifier
|
||||||
|
term-ansicolor
|
||||||
therubyracer
|
therubyracer
|
||||||
uglifier (>= 1.0.3)
|
uglifier (>= 1.0.3)
|
||||||
whenever
|
whenever
|
||||||
|
|||||||
@@ -2,8 +2,7 @@ class PostVersionsController < ApplicationController
|
|||||||
respond_to :html, :xml, :json
|
respond_to :html, :xml, :json
|
||||||
|
|
||||||
def index
|
def index
|
||||||
@search = PostVersion.search(params[:search])
|
@post_versions = PostVersion.search(params[:search]).order("updated_at desc").paginate(params[:page], :count => 1_000_000)
|
||||||
@post_versions = @search.order("updated_at desc").paginate(params[:page], :count => 1_000_000)
|
|
||||||
respond_with(@post_versions)
|
respond_with(@post_versions)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
|||||||
@@ -34,6 +34,7 @@ module PaginationHelper
|
|||||||
1.upto(records.total_pages) do |page|
|
1.upto(records.total_pages) do |page|
|
||||||
html << numbered_paginator_item(page, records.current_page)
|
html << numbered_paginator_item(page, records.current_page)
|
||||||
end
|
end
|
||||||
|
|
||||||
elsif records.current_page <= window + 2
|
elsif records.current_page <= window + 2
|
||||||
1.upto(records.current_page + window) do |page|
|
1.upto(records.current_page + window) do |page|
|
||||||
html << numbered_paginator_item(page, records.current_page)
|
html << numbered_paginator_item(page, records.current_page)
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
<div id="a-index">
|
<div id="a-index">
|
||||||
<h1>Changes</h1>
|
<h1>Changes</h1>
|
||||||
|
|
||||||
<% if @post_versions.empty? %>
|
<% if @post_versions.all.empty? %>
|
||||||
<%= render "post_sets/blank" %>
|
<%= render "post_sets/blank" %>
|
||||||
<% else %>
|
<% else %>
|
||||||
<%= render "listing", :post_versions => @post_versions %>
|
<%= 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