Unfortunately the Model.uncached block does not work. 

I tried ActiveRecord::Base.connection.disable_query_cache!
and
ActiveRecord::Base.connection.clear_query_cache
without any luck.

So, it's not the query cache. It looks like some sort of association cache. 
Anyone suggestions?


Op maandag 18 februari 2013 22:27:24 UTC+1 schreef javinto het volgende:
>
> 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/-/06Po7MkFlm8J.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to