I have this simple model with orders and products. Orders looks like
this:
class Order < ActiveRecord::Base
has_many :orders_products, :foreign_key => :order_id
has_many :products, :through => :orders_products
has_many :priority_products, :through => :orders_products, :source
=> :product, :conditions => { “orders_products.priority” => true }
end
The :condition on :priority_products is cause problems for me. It
worked fine in Rails 2.0.2, but breaks in Rails 2.1.1 when putting the
relation in a :include clause:
The :condition on :priority_products is cause problems for me. It
worked fine in Rails 2.0.2, but breaks in Rails 2.1.1 when putting the
relation in a :include clause:
This is a problem with 2.1’s implementation of eager loading. You
should be able to force a fallback to the old code by adding something
like :conditions => “some trivial condition on the priority_products
or orders_products table”)
This is a problem with 2.1’s implementation of eager loading. You
should be able to force a fallback to the old code by adding something
like :conditions => “some trivial condition on the priority_products
or orders_products table”)
Thanks, this sovled the immediate problem. Will I need this workaround
with future version of Rails or is it something being looked at?
I don’t think 2.2 will be any different. I did have plans to look at
it but got side tracked and didn’t get it finished.
Does anyone know if there are any plans to allow conditions to be
specified that are applied to the ON clause of a join ?
you can do that anyway - :joins accepts arbitrary sql fragments.
Fred
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.