Magic Multi Connections gem + Rails 3.1

Hello,

Like in topic, did anyone tried to run this gem under 3.1? I'm getting error that mirror_db_connection is not valid key:

ArgumentError: Unknown key: mirror_db_connection   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/core_ext/hash/keys.rb:44:in `block in assert_valid_keys'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/core_ext/hash/keys.rb:43:in `each_key'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/core_ext/hash/keys.rb:43:in `assert_valid_keys'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/associations/builder/ association.rb:29:in `validate_options'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/associations/builder/ association.rb:20:in `build'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/autosave_association.rb:127:in `build'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/associations/builder/ belongs_to.rb:14:in `build'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/associations/builder/ association.rb:12:in `build'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/associations.rb:1409:in `belongs_to'   from /Users/nopik/Documents/Projects/Christmas/app/models/ intention.rb:2:in `<class:Intention>'   from /Users/nopik/Documents/Projects/Christmas/app/models/ intention.rb:1:in `<top (required)>'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:456:in `load'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:456:in `block in load_file'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:640:in `new_constants_in'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:455:in `load_file'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:342:in `require_or_load' ... 14 levels...   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:550:in `'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activesupport-3.1.0/lib/active_support/dependencies.rb:595:in `constantize'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/base.rb:1327:in `block in compute_type'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/base.rb:1325:in `each'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/base.rb:1325:in `compute_type'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ activerecord-3.1.0/lib/active_record/reflection.rb:173:in `klass'   from /Users/nopik/Warsztat/magic_multi_connections/lib/ magic_multi_connections/connected.rb:60:in `block in create_class'   from /Users/nopik/Warsztat/magic_multi_connections/lib/ magic_multi_connections/connected.rb:51:in `each'   from /Users/nopik/Warsztat/magic_multi_connections/lib/ magic_multi_connections/connected.rb:51:in `create_class'   from /Users/nopik/Warsztat/magic_multi_connections/lib/ magic_multi_connections/connected.rb:30:in `const_missing'   from (irb):1   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ railties-3.1.0/lib/rails/commands/console.rb:45:in `start'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ railties-3.1.0/lib/rails/commands/console.rb:8:in `start'   from /Users/nopik/.rvm/gems/ruby-1.9.2-p180@christmas/gems/ railties-3.1.0/lib/rails/commands.rb:40:in `<top (required)>'   from script/rails:6:in `require'

I tried to dig into this, but it quicky goes down to ActiveRecord internals, which I'm not familiar enough to solve it quickly. Any hints?

As a old-school programmer I forgot, as usual, that nowadays visual debuggers are around :wink: And RubyMine's debugger was pretty good at solving this task. Indeed, after few minutes I've found how to patch things to get workable state.

Yesterday I've spend 1.5 hour wandering through sources without a clue, today problem was solved in 10 minutes. If you still think that RubyMine is too expensive, thinkg again :wink:

My temporary solution is at https://github.com/Nopik/magic_multi_connections though I consider it as dirty hack, not production code. Rails 3.0 compatibility is broken now, most likely, too.

Will love to switch to official patch sooner or later.