Table_name question

Hello all!

I want to dynamically change table name for some count of my models.
I understand that may be it's bad practice but I simply need it.

I found some solution that works for somebody:

application.rb:
  around_filter :scope_rubrics_partition

  def scope_rubrics_partition
    Rubric.scope_rubrics_partition do
      yield
    end
  end

class Rubric < ActiveRecord::Base
  def self.scope_rubrics_partition
      if true
        set_table_name 'dp_ru_rubrics'
        # set_primary_key 'dp_ru_rubrics.id'
      else
        set_table_name 'rubrics'
      end
      yield
     ensure
       set_table_name 'rubrics'
  end
end

Also patch rails to don't memoize table_name
reflections.rb:
      def table_name
        klass.table_name
      end

      def quoted_table_name
        klass.quoted_table_name
      end

But now I get an error like:

Mysql::Error: Unknown column 'rubrics.id' in 'order clause': SELECT
`dp_ru_rubrics`.* FROM `dp_ru_rubrics` ORDER BY rubrics.`id` ASC
LIMIT 0, 15

So, how in the end set table name dynamically in production mode too?
Thank you!
p.s: sorry for poor english)