In part of my application I'm using dynamic tables. I'm aware of the single thread conditions. I've tackled some caveats yet - will post a blog about it soon - but there's one I need help with.
Consider 2 models that are associated: Order and OrderLine where Order has many order_lines. Now we set the table names for them: Order.table_name='v1_orders' OrderLine.table_name='v1_order_lines' Query: OrderLine.joins(:order).where(Order.table_name=>{:customer_id=>1}).all Result: Select v1_order_lines.* FROM v1_order_lines INNER JOIN v1_orders ON v1_orders.id=v1_order_lines.order_id WHERE v1_orders.customer_id=1 So far so good Now we alter the table names: Order.table_name='v2_orders' OrderLine.table_name='v2_order_lines' and requery: Query: OrderLine.joins(:order).where(Order.table_name=>{:customer_id=>1}).all Result: Select v2_order_lines.* FROM v2_order_lines *INNER JOIN v1_orders ON v1_orders.id*=v2_order_lines.order_id WHERE v2_orders.customer_id=1 Notice the INNER JOIN, it still uses the v1_ prefixes!! I looks like if there has been some association caching. How can I get rid of it? I tried: ActiveRecord::Base.connection.schema_cache.clear! but without the right effect. Thanks -- You received this message because you are subscribed to the Google Groups "Ruby on Rails: Talk" group. To unsubscribe from this group and stop receiving emails from it, send an email to rubyonrails-talk+unsubscr...@googlegroups.com. To post to this group, send email to rubyonrails-talk@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msg/rubyonrails-talk/-/esE-9LGzDZgJ. For more options, visit https://groups.google.com/groups/opt_out.