activerecord 3.0.0 → 4.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of activerecord might be problematic. Click here for more details.
- checksums.yaml +7 -0
- data/CHANGELOG.md +2102 -0
- data/MIT-LICENSE +20 -0
- data/README.rdoc +35 -44
- data/examples/performance.rb +110 -100
- data/lib/active_record/aggregations.rb +59 -75
- data/lib/active_record/associations/alias_tracker.rb +76 -0
- data/lib/active_record/associations/association.rb +248 -0
- data/lib/active_record/associations/association_scope.rb +135 -0
- data/lib/active_record/associations/belongs_to_association.rb +60 -59
- data/lib/active_record/associations/belongs_to_polymorphic_association.rb +16 -59
- data/lib/active_record/associations/builder/association.rb +108 -0
- data/lib/active_record/associations/builder/belongs_to.rb +98 -0
- data/lib/active_record/associations/builder/collection_association.rb +89 -0
- data/lib/active_record/associations/builder/has_and_belongs_to_many.rb +39 -0
- data/lib/active_record/associations/builder/has_many.rb +15 -0
- data/lib/active_record/associations/builder/has_one.rb +25 -0
- data/lib/active_record/associations/builder/singular_association.rb +32 -0
- data/lib/active_record/associations/collection_association.rb +608 -0
- data/lib/active_record/associations/collection_proxy.rb +986 -0
- data/lib/active_record/associations/has_and_belongs_to_many_association.rb +40 -112
- data/lib/active_record/associations/has_many_association.rb +83 -76
- data/lib/active_record/associations/has_many_through_association.rb +147 -66
- data/lib/active_record/associations/has_one_association.rb +67 -108
- data/lib/active_record/associations/has_one_through_association.rb +21 -25
- data/lib/active_record/associations/join_dependency/join_association.rb +174 -0
- data/lib/active_record/associations/join_dependency/join_base.rb +24 -0
- data/lib/active_record/associations/join_dependency/join_part.rb +78 -0
- data/lib/active_record/associations/join_dependency.rb +235 -0
- data/lib/active_record/associations/join_helper.rb +45 -0
- data/lib/active_record/associations/preloader/association.rb +121 -0
- data/lib/active_record/associations/preloader/belongs_to.rb +17 -0
- data/lib/active_record/associations/preloader/collection_association.rb +24 -0
- data/lib/active_record/associations/preloader/has_and_belongs_to_many.rb +60 -0
- data/lib/active_record/associations/preloader/has_many.rb +17 -0
- data/lib/active_record/associations/preloader/has_many_through.rb +19 -0
- data/lib/active_record/associations/preloader/has_one.rb +23 -0
- data/lib/active_record/associations/preloader/has_one_through.rb +9 -0
- data/lib/active_record/associations/preloader/singular_association.rb +21 -0
- data/lib/active_record/associations/preloader/through_association.rb +63 -0
- data/lib/active_record/associations/preloader.rb +178 -0
- data/lib/active_record/associations/singular_association.rb +64 -0
- data/lib/active_record/associations/through_association.rb +87 -0
- data/lib/active_record/associations.rb +512 -1224
- data/lib/active_record/attribute_assignment.rb +201 -0
- data/lib/active_record/attribute_methods/before_type_cast.rb +49 -12
- data/lib/active_record/attribute_methods/dirty.rb +51 -28
- data/lib/active_record/attribute_methods/primary_key.rb +94 -22
- data/lib/active_record/attribute_methods/query.rb +5 -4
- data/lib/active_record/attribute_methods/read.rb +63 -72
- data/lib/active_record/attribute_methods/serialization.rb +162 -0
- data/lib/active_record/attribute_methods/time_zone_conversion.rb +39 -41
- data/lib/active_record/attribute_methods/write.rb +39 -13
- data/lib/active_record/attribute_methods.rb +362 -29
- data/lib/active_record/autosave_association.rb +132 -75
- data/lib/active_record/base.rb +83 -1627
- data/lib/active_record/callbacks.rb +69 -47
- data/lib/active_record/coders/yaml_column.rb +38 -0
- data/lib/active_record/connection_adapters/abstract/connection_pool.rb +411 -138
- data/lib/active_record/connection_adapters/abstract/database_limits.rb +21 -11
- data/lib/active_record/connection_adapters/abstract/database_statements.rb +234 -173
- data/lib/active_record/connection_adapters/abstract/query_cache.rb +36 -22
- data/lib/active_record/connection_adapters/abstract/quoting.rb +82 -25
- data/lib/active_record/connection_adapters/abstract/schema_definitions.rb +176 -414
- data/lib/active_record/connection_adapters/abstract/schema_dumper.rb +70 -0
- data/lib/active_record/connection_adapters/abstract/schema_statements.rb +562 -232
- data/lib/active_record/connection_adapters/abstract/transaction.rb +203 -0
- data/lib/active_record/connection_adapters/abstract_adapter.rb +281 -53
- data/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +782 -0
- data/lib/active_record/connection_adapters/column.rb +318 -0
- data/lib/active_record/connection_adapters/connection_specification.rb +96 -0
- data/lib/active_record/connection_adapters/mysql2_adapter.rb +273 -0
- data/lib/active_record/connection_adapters/mysql_adapter.rb +365 -450
- data/lib/active_record/connection_adapters/postgresql/array_parser.rb +97 -0
- data/lib/active_record/connection_adapters/postgresql/cast.rb +152 -0
- data/lib/active_record/connection_adapters/postgresql/database_statements.rb +242 -0
- data/lib/active_record/connection_adapters/postgresql/oid.rb +366 -0
- data/lib/active_record/connection_adapters/postgresql/quoting.rb +171 -0
- data/lib/active_record/connection_adapters/postgresql/referential_integrity.rb +30 -0
- data/lib/active_record/connection_adapters/postgresql/schema_statements.rb +489 -0
- data/lib/active_record/connection_adapters/postgresql_adapter.rb +672 -752
- data/lib/active_record/connection_adapters/schema_cache.rb +129 -0
- data/lib/active_record/connection_adapters/sqlite3_adapter.rb +588 -17
- data/lib/active_record/connection_adapters/statement_pool.rb +40 -0
- data/lib/active_record/connection_handling.rb +98 -0
- data/lib/active_record/core.rb +463 -0
- data/lib/active_record/counter_cache.rb +108 -101
- data/lib/active_record/dynamic_matchers.rb +131 -0
- data/lib/active_record/errors.rb +54 -13
- data/lib/active_record/explain.rb +38 -0
- data/lib/active_record/explain_registry.rb +30 -0
- data/lib/active_record/explain_subscriber.rb +29 -0
- data/lib/active_record/fixture_set/file.rb +55 -0
- data/lib/active_record/fixtures.rb +703 -785
- data/lib/active_record/inheritance.rb +200 -0
- data/lib/active_record/integration.rb +60 -0
- data/lib/active_record/locale/en.yml +8 -1
- data/lib/active_record/locking/optimistic.rb +69 -60
- data/lib/active_record/locking/pessimistic.rb +34 -12
- data/lib/active_record/log_subscriber.rb +40 -6
- data/lib/active_record/migration/command_recorder.rb +164 -0
- data/lib/active_record/migration/join_table.rb +15 -0
- data/lib/active_record/migration.rb +614 -216
- data/lib/active_record/model_schema.rb +345 -0
- data/lib/active_record/nested_attributes.rb +248 -119
- data/lib/active_record/null_relation.rb +65 -0
- data/lib/active_record/persistence.rb +275 -57
- data/lib/active_record/query_cache.rb +29 -9
- data/lib/active_record/querying.rb +62 -0
- data/lib/active_record/railtie.rb +135 -21
- data/lib/active_record/railties/console_sandbox.rb +5 -0
- data/lib/active_record/railties/controller_runtime.rb +17 -5
- data/lib/active_record/railties/databases.rake +249 -359
- data/lib/active_record/railties/jdbcmysql_error.rb +16 -0
- data/lib/active_record/readonly_attributes.rb +30 -0
- data/lib/active_record/reflection.rb +283 -103
- data/lib/active_record/relation/batches.rb +38 -34
- data/lib/active_record/relation/calculations.rb +252 -139
- data/lib/active_record/relation/delegation.rb +125 -0
- data/lib/active_record/relation/finder_methods.rb +182 -188
- data/lib/active_record/relation/merger.rb +161 -0
- data/lib/active_record/relation/predicate_builder.rb +86 -21
- data/lib/active_record/relation/query_methods.rb +917 -134
- data/lib/active_record/relation/spawn_methods.rb +53 -92
- data/lib/active_record/relation.rb +405 -143
- data/lib/active_record/result.rb +67 -0
- data/lib/active_record/runtime_registry.rb +17 -0
- data/lib/active_record/sanitization.rb +168 -0
- data/lib/active_record/schema.rb +20 -14
- data/lib/active_record/schema_dumper.rb +55 -46
- data/lib/active_record/schema_migration.rb +39 -0
- data/lib/active_record/scoping/default.rb +146 -0
- data/lib/active_record/scoping/named.rb +175 -0
- data/lib/active_record/scoping.rb +82 -0
- data/lib/active_record/serialization.rb +8 -46
- data/lib/active_record/serializers/xml_serializer.rb +21 -68
- data/lib/active_record/statement_cache.rb +26 -0
- data/lib/active_record/store.rb +156 -0
- data/lib/active_record/tasks/database_tasks.rb +203 -0
- data/lib/active_record/tasks/firebird_database_tasks.rb +56 -0
- data/lib/active_record/tasks/mysql_database_tasks.rb +143 -0
- data/lib/active_record/tasks/oracle_database_tasks.rb +45 -0
- data/lib/active_record/tasks/postgresql_database_tasks.rb +90 -0
- data/lib/active_record/tasks/sqlite_database_tasks.rb +51 -0
- data/lib/active_record/tasks/sqlserver_database_tasks.rb +48 -0
- data/lib/active_record/test_case.rb +57 -28
- data/lib/active_record/timestamp.rb +49 -18
- data/lib/active_record/transactions.rb +106 -63
- data/lib/active_record/translation.rb +22 -0
- data/lib/active_record/validations/associated.rb +25 -24
- data/lib/active_record/validations/presence.rb +65 -0
- data/lib/active_record/validations/uniqueness.rb +123 -83
- data/lib/active_record/validations.rb +29 -29
- data/lib/active_record/version.rb +7 -5
- data/lib/active_record.rb +83 -34
- data/lib/rails/generators/active_record/migration/migration_generator.rb +46 -9
- data/lib/rails/generators/active_record/migration/templates/create_table_migration.rb +19 -0
- data/lib/rails/generators/active_record/migration/templates/migration.rb +30 -8
- data/lib/rails/generators/active_record/model/model_generator.rb +15 -5
- data/lib/rails/generators/active_record/model/templates/model.rb +7 -2
- data/lib/rails/generators/active_record/model/templates/module.rb +3 -1
- data/lib/rails/generators/active_record.rb +4 -8
- metadata +163 -121
- data/CHANGELOG +0 -6023
- data/examples/associations.png +0 -0
- data/lib/active_record/association_preload.rb +0 -403
- data/lib/active_record/associations/association_collection.rb +0 -562
- data/lib/active_record/associations/association_proxy.rb +0 -295
- data/lib/active_record/associations/through_association_scope.rb +0 -154
- data/lib/active_record/connection_adapters/abstract/connection_specification.rb +0 -113
- data/lib/active_record/connection_adapters/sqlite_adapter.rb +0 -401
- data/lib/active_record/dynamic_finder_match.rb +0 -53
- data/lib/active_record/dynamic_scope_match.rb +0 -32
- data/lib/active_record/named_scope.rb +0 -138
- data/lib/active_record/observer.rb +0 -140
- data/lib/active_record/session_store.rb +0 -340
- data/lib/rails/generators/active_record/model/templates/migration.rb +0 -16
- data/lib/rails/generators/active_record/observer/observer_generator.rb +0 -15
- data/lib/rails/generators/active_record/observer/templates/observer.rb +0 -2
- data/lib/rails/generators/active_record/session_migration/session_migration_generator.rb +0 -24
- data/lib/rails/generators/active_record/session_migration/templates/migration.rb +0 -16
@@ -10,11 +10,11 @@ require "action_controller/railtie"
|
|
10
10
|
|
11
11
|
module ActiveRecord
|
12
12
|
# = Active Record Railtie
|
13
|
-
class Railtie < Rails::Railtie
|
13
|
+
class Railtie < Rails::Railtie # :nodoc:
|
14
14
|
config.active_record = ActiveSupport::OrderedOptions.new
|
15
15
|
|
16
|
-
config.
|
17
|
-
|
16
|
+
config.app_generators.orm :active_record, :migration => true,
|
17
|
+
:timestamps => true
|
18
18
|
|
19
19
|
config.app_middleware.insert_after "::ActionDispatch::Callbacks",
|
20
20
|
"ActiveRecord::QueryCache"
|
@@ -22,14 +22,54 @@ module ActiveRecord
|
|
22
22
|
config.app_middleware.insert_after "::ActionDispatch::Callbacks",
|
23
23
|
"ActiveRecord::ConnectionAdapters::ConnectionManagement"
|
24
24
|
|
25
|
+
config.action_dispatch.rescue_responses.merge!(
|
26
|
+
'ActiveRecord::RecordNotFound' => :not_found,
|
27
|
+
'ActiveRecord::StaleObjectError' => :conflict,
|
28
|
+
'ActiveRecord::RecordInvalid' => :unprocessable_entity,
|
29
|
+
'ActiveRecord::RecordNotSaved' => :unprocessable_entity
|
30
|
+
)
|
31
|
+
|
32
|
+
|
33
|
+
config.active_record.use_schema_cache_dump = true
|
34
|
+
|
35
|
+
config.eager_load_namespaces << ActiveRecord
|
36
|
+
|
25
37
|
rake_tasks do
|
38
|
+
require "active_record/base"
|
39
|
+
|
40
|
+
ActiveRecord::Tasks::DatabaseTasks.seed_loader = Rails.application
|
41
|
+
ActiveRecord::Tasks::DatabaseTasks.env = Rails.env
|
42
|
+
|
43
|
+
namespace :db do
|
44
|
+
task :load_config do
|
45
|
+
ActiveRecord::Tasks::DatabaseTasks.db_dir = Rails.application.config.paths["db"].first
|
46
|
+
ActiveRecord::Tasks::DatabaseTasks.database_configuration = Rails.application.config.database_configuration
|
47
|
+
ActiveRecord::Tasks::DatabaseTasks.migrations_paths = Rails.application.paths['db/migrate'].to_a
|
48
|
+
ActiveRecord::Tasks::DatabaseTasks.fixtures_path = File.join Rails.root, 'test', 'fixtures'
|
49
|
+
|
50
|
+
if defined?(ENGINE_PATH) && engine = Rails::Engine.find(ENGINE_PATH)
|
51
|
+
if engine.paths['db/migrate'].existent
|
52
|
+
ActiveRecord::Tasks::DatabaseTasks.migrations_paths += engine.paths['db/migrate'].to_a
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
|
26
58
|
load "active_record/railties/databases.rake"
|
27
59
|
end
|
28
60
|
|
29
|
-
# When loading console, force ActiveRecord to be loaded
|
30
|
-
# references when loading a constant for the
|
31
|
-
|
32
|
-
|
61
|
+
# When loading console, force ActiveRecord::Base to be loaded
|
62
|
+
# to avoid cross references when loading a constant for the
|
63
|
+
# first time. Also, make it output to STDERR.
|
64
|
+
console do |app|
|
65
|
+
require "active_record/railties/console_sandbox" if app.sandbox?
|
66
|
+
require "active_record/base"
|
67
|
+
console = ActiveSupport::Logger.new(STDERR)
|
68
|
+
Rails.logger.extend ActiveSupport::Logger.broadcast console
|
69
|
+
end
|
70
|
+
|
71
|
+
runner do
|
72
|
+
require "active_record/base"
|
33
73
|
end
|
34
74
|
|
35
75
|
initializer "active_record.initialize_timezone" do
|
@@ -43,8 +83,84 @@ module ActiveRecord
|
|
43
83
|
ActiveSupport.on_load(:active_record) { self.logger ||= ::Rails.logger }
|
44
84
|
end
|
45
85
|
|
86
|
+
initializer "active_record.migration_error" do
|
87
|
+
if config.active_record.delete(:migration_error) == :page_load
|
88
|
+
config.app_middleware.insert_after "::ActionDispatch::Callbacks",
|
89
|
+
"ActiveRecord::Migration::CheckPending"
|
90
|
+
end
|
91
|
+
end
|
92
|
+
|
93
|
+
initializer "active_record.check_schema_cache_dump" do
|
94
|
+
if config.active_record.delete(:use_schema_cache_dump)
|
95
|
+
config.after_initialize do |app|
|
96
|
+
ActiveSupport.on_load(:active_record) do
|
97
|
+
filename = File.join(app.config.paths["db"].first, "schema_cache.dump")
|
98
|
+
|
99
|
+
if File.file?(filename)
|
100
|
+
cache = Marshal.load File.binread filename
|
101
|
+
if cache.version == ActiveRecord::Migrator.current_version
|
102
|
+
self.connection.schema_cache = cache
|
103
|
+
else
|
104
|
+
warn "Ignoring db/schema_cache.dump because it has expired. The current schema version is #{ActiveRecord::Migrator.current_version}, but the one in the cache is #{cache.version}."
|
105
|
+
end
|
106
|
+
end
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
end
|
111
|
+
|
46
112
|
initializer "active_record.set_configs" do |app|
|
47
113
|
ActiveSupport.on_load(:active_record) do
|
114
|
+
begin
|
115
|
+
old_behavior, ActiveSupport::Deprecation.behavior = ActiveSupport::Deprecation.behavior, :stderr
|
116
|
+
whitelist_attributes = app.config.active_record.delete(:whitelist_attributes)
|
117
|
+
|
118
|
+
if respond_to?(:mass_assignment_sanitizer=)
|
119
|
+
mass_assignment_sanitizer = nil
|
120
|
+
else
|
121
|
+
mass_assignment_sanitizer = app.config.active_record.delete(:mass_assignment_sanitizer)
|
122
|
+
end
|
123
|
+
|
124
|
+
unless whitelist_attributes.nil? && mass_assignment_sanitizer.nil?
|
125
|
+
ActiveSupport::Deprecation.warn <<-EOF.strip_heredoc, []
|
126
|
+
Model based mass assignment security has been extracted
|
127
|
+
out of Rails into a gem. Please use the new recommended protection model for
|
128
|
+
params or add `protected_attributes` to your Gemfile to use the old one.
|
129
|
+
|
130
|
+
To disable this message remove the `whitelist_attributes` option from your
|
131
|
+
`config/application.rb` file and any `mass_assignment_sanitizer` options
|
132
|
+
from your `config/environments/*.rb` files.
|
133
|
+
|
134
|
+
See http://guides.rubyonrails.org/security.html#mass-assignment for more information.
|
135
|
+
EOF
|
136
|
+
end
|
137
|
+
|
138
|
+
unless app.config.active_record.delete(:auto_explain_threshold_in_seconds).nil?
|
139
|
+
ActiveSupport::Deprecation.warn <<-EOF.strip_heredoc, []
|
140
|
+
The Active Record auto explain feature has been removed.
|
141
|
+
|
142
|
+
To disable this message remove the `active_record.auto_explain_threshold_in_seconds`
|
143
|
+
option from the `config/environments/*.rb` config file.
|
144
|
+
|
145
|
+
See http://guides.rubyonrails.org/4_0_release_notes.html for more information.
|
146
|
+
EOF
|
147
|
+
end
|
148
|
+
|
149
|
+
unless app.config.active_record.delete(:observers).nil?
|
150
|
+
ActiveSupport::Deprecation.warn <<-EOF.strip_heredoc, []
|
151
|
+
Active Record Observers has been extracted out of Rails into a gem.
|
152
|
+
Please use callbacks or add `rails-observers` to your Gemfile to use observers.
|
153
|
+
|
154
|
+
To disable this message remove the `observers` option from your
|
155
|
+
`config/application.rb` or from your initializers.
|
156
|
+
|
157
|
+
See http://guides.rubyonrails.org/4_0_release_notes.html for more information.
|
158
|
+
EOF
|
159
|
+
end
|
160
|
+
ensure
|
161
|
+
ActiveSupport::Deprecation.behavior = old_behavior
|
162
|
+
end
|
163
|
+
|
48
164
|
app.config.active_record.each do |k,v|
|
49
165
|
send "#{k}=", v
|
50
166
|
end
|
@@ -55,37 +171,35 @@ module ActiveRecord
|
|
55
171
|
# and then establishes the connection.
|
56
172
|
initializer "active_record.initialize_database" do |app|
|
57
173
|
ActiveSupport.on_load(:active_record) do
|
58
|
-
self.configurations = app.config.database_configuration
|
174
|
+
self.configurations = app.config.database_configuration || {}
|
59
175
|
establish_connection
|
60
176
|
end
|
61
177
|
end
|
62
178
|
|
63
179
|
# Expose database runtime to controller for logging.
|
64
|
-
initializer "active_record.log_runtime" do
|
180
|
+
initializer "active_record.log_runtime" do
|
65
181
|
require "active_record/railties/controller_runtime"
|
66
182
|
ActiveSupport.on_load(:action_controller) do
|
67
183
|
include ActiveRecord::Railties::ControllerRuntime
|
68
184
|
end
|
69
185
|
end
|
70
186
|
|
71
|
-
initializer "active_record.
|
72
|
-
|
73
|
-
|
74
|
-
|
187
|
+
initializer "active_record.set_reloader_hooks" do |app|
|
188
|
+
hook = app.config.reload_classes_only_on_change ? :to_prepare : :to_cleanup
|
189
|
+
|
190
|
+
ActiveSupport.on_load(:active_record) do
|
191
|
+
ActionDispatch::Reloader.send(hook) do
|
192
|
+
if ActiveRecord::Base.connected?
|
75
193
|
ActiveRecord::Base.clear_reloadable_connections!
|
194
|
+
ActiveRecord::Base.clear_cache!
|
76
195
|
end
|
77
196
|
end
|
78
197
|
end
|
79
198
|
end
|
80
199
|
|
81
|
-
|
82
|
-
|
83
|
-
|
84
|
-
|
85
|
-
ActionDispatch::Callbacks.to_prepare(:activerecord_instantiate_observers) do
|
86
|
-
ActiveRecord::Base.instantiate_observers
|
87
|
-
end
|
88
|
-
end
|
200
|
+
initializer "active_record.add_watchable_files" do |app|
|
201
|
+
path = app.paths["db"].first
|
202
|
+
config.watchable_files.concat ["#{path}/schema.rb", "#{path}/structure.sql"]
|
89
203
|
end
|
90
204
|
end
|
91
205
|
end
|
@@ -1,20 +1,30 @@
|
|
1
1
|
require 'active_support/core_ext/module/attr_internal'
|
2
|
+
require 'active_record/log_subscriber'
|
2
3
|
|
3
4
|
module ActiveRecord
|
4
|
-
module Railties
|
5
|
-
module ControllerRuntime
|
5
|
+
module Railties # :nodoc:
|
6
|
+
module ControllerRuntime #:nodoc:
|
6
7
|
extend ActiveSupport::Concern
|
7
8
|
|
8
9
|
protected
|
9
10
|
|
10
11
|
attr_internal :db_runtime
|
11
12
|
|
13
|
+
def process_action(action, *args)
|
14
|
+
# We also need to reset the runtime before each action
|
15
|
+
# because of queries in middleware or in cases we are streaming
|
16
|
+
# and it won't be cleaned up by the method below.
|
17
|
+
ActiveRecord::LogSubscriber.reset_runtime
|
18
|
+
super
|
19
|
+
end
|
20
|
+
|
12
21
|
def cleanup_view_runtime
|
13
22
|
if ActiveRecord::Base.connected?
|
14
23
|
db_rt_before_render = ActiveRecord::LogSubscriber.reset_runtime
|
24
|
+
self.db_runtime = (db_runtime || 0) + db_rt_before_render
|
15
25
|
runtime = super
|
16
26
|
db_rt_after_render = ActiveRecord::LogSubscriber.reset_runtime
|
17
|
-
self.db_runtime
|
27
|
+
self.db_runtime += db_rt_after_render
|
18
28
|
runtime - db_rt_after_render
|
19
29
|
else
|
20
30
|
super
|
@@ -23,10 +33,12 @@ module ActiveRecord
|
|
23
33
|
|
24
34
|
def append_info_to_payload(payload)
|
25
35
|
super
|
26
|
-
|
36
|
+
if ActiveRecord::Base.connected?
|
37
|
+
payload[:db_runtime] = (db_runtime || 0) + ActiveRecord::LogSubscriber.reset_runtime
|
38
|
+
end
|
27
39
|
end
|
28
40
|
|
29
|
-
module ClassMethods
|
41
|
+
module ClassMethods # :nodoc:
|
30
42
|
def log_process_action(payload)
|
31
43
|
messages, db_runtime = super, payload[:db_runtime]
|
32
44
|
messages << ("ActiveRecord: %.1fms" % db_runtime.to_f) if db_runtime
|