Model.uncached do
  Model.do.work
end

On Mon, Feb 18, 2013 at 3:27 PM, javinto <jan.javi...@gmail.com> wrote:
> 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.
>
>

-- 
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.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to