Class: ActiveRecord::Base
- Inherits:
-
Object
- Object
- ActiveRecord::Base
- Defined in:
- lib/knockoff/active_record/base.rb
Class Method Summary collapse
- .connection ⇒ Object
-
.on_replica ⇒ Object
Generate scope at top level e.g.
- .original_connection ⇒ Object
Class Method Details
.connection ⇒ Object
6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/knockoff/active_record/base.rb', line 6 def connection target = Thread.current[:knockoff] || Knockoff.default_target case target when :replica # Attempts to use a random replica connection, but otherwise falls back to primary Knockoff.replica_pool.random_replica_connection.original_connection when :primary, NilClass original_connection else raise Knockoff::Error, "Invalid target: #{Thread.current[:knockoff]}" end end |
.on_replica ⇒ Object
Generate scope at top level e.g. User.on_replica
20 21 22 23 24 25 26 |
# File 'lib/knockoff/active_record/base.rb', line 20 def on_replica # Why where(nil)? # http://stackoverflow.com/questions/18198963/with-rails-4-model-scoped-is-deprecated-but-model-all-cant-replace-it context = where(nil) context.knockoff_target = :replica context end |
.original_connection ⇒ Object
4 |
# File 'lib/knockoff/active_record/base.rb', line 4 alias_method :original_connection, :connection |