>
> Thank you for your response.  However, I am refactoring an existing
> application, and am trying to remove a bunch of pure SQL that was put
> in the code.  I believe the best way to do this is with a table
> association.

Why do you believe this?


>  One of the big features I want to use out of this is
> retrieving the records in the proper order (I'd prefer not to sort
> with Ruby after the fact since that would force me to rewrite a bunch
> of code for the sorting of the report).
>
What is the proper order?

>

However, as this is an existing application (similar in setup to the
> example I gave), I cannot remove the model, as there is a table
> already associated with it, and the ids are being used.
>
Gotcha.

>
> Another option that would work is to use a 'joins' statement in my
> finder method so I can sort products based on Store attributes with
> something like this:
> FROM products
> LEFT JOIN departments on departements.id = products.department_id
> LEFT JOIN stores on stores.id = products.store_id OR stores.id =
> departments.store_id
>
why not SELECT view INNER JOIN associations WHERE = AND  = OR =.

>
> However, I am also using an :include option for several associations,
> and it seems that joins and include are mutually exclusive.  I'd
> really had to have to write out all of the associations.
>
I'll respond after I unravel what that means in my head.

>
> Any thoughts?
>
Those are my thoughts. I'm newish and find attempting to help in turn helps
me to learn. I hope you don't mind.

>
> Thanks!
>
You are welcome

> Trish
>
Angel

>
> On Aug 3, 2:11 am, Angel Robert Marquez <[email protected]>
> wrote:
> > class Store < ActiveRecord::Base
> > has_many: store_type
> > has_many: product_type, :through => department
> >
> > class Department < ActiveRecord::Base
> > belongs_to: store
> > belongs_to: product
> >
> > class Product < ActiveRecord::Base
> >   has_many :departments
> >   has_many :stores, :through => department
> > end
> >
> > I think you need to remove the StoreType as a model...
> >
> >
> >
> > On Mon, Aug 2, 2010 at 11:05 AM, Trish <[email protected]> wrote:
> > > I am working on a project that has some complex table associations,
> > > and I am having a hard time declaring this association in a Model, and
> > > fear it can't be done.
> >
> > > Here is an example of my issue...
> >
> > > class StoreType < ActiveRecord::Base; end
> > > class Store < ActiveRecord::Base; end
> > > class Department < ActiveRecord::Base; end
> > > class Product < ActiveRecord::Base; end
> >
> > > A StoreType has many stores and a Store has many Department.  However,
> > > both Store and Department have many products.  An product has the
> > > columns store_id and department_id which are mutually exclusive.  This
> > > is because a Product may belong directly to a Department, or it may be
> > > a 'global' product that belongs directly to the Store.
> >
> > > What I'd like to do is have an association in the StoreType model that
> > > would give me all products for that StoreType.
> >
> > > Currently, I have set up the following associtations on StoreType:
> >
> > > class StoreType < ActiveRecord::Base
> > >  has_many :stores
> > >  has_many :departments, :through=>:stores
> >
> > > has_many :store_products, :through=>:stores, :source=>:products, :uniq
> > > => true
> >
> > > has_many :department_products, :through=>:departments,
> :source=>:products,
> > > :uniq
> > > => true
> > > end
> >
> > > This is using the Nested Has Many Through plugin to achieve the nested
> > > association (department_products).
> >
> > > However, I'd like to have a generic 'products' association for
> > > StoreType that pulls a combination of the two product associations.
> > > I'd like to do this through an association instead of just through a
> > > function because I want to gain the dynamic methods created by
> > > has_many, specifically the "collection.find(...)" method so I can add
> > > more conditions to the collection.
> >
> > > Is there a way to do this?
> >
> > > Thanks in advance!
> > > Trish
> >
> > > --
> > > You received this message because you are subscribed to the Google
> Groups
> > > "Ruby on Rails: Talk" group.
> > > To post to this group, send email to [email protected]
> .
> > > To unsubscribe from this group, send email to
> > > [email protected]<rubyonrails-talk%[email protected]><rubyonrails-talk%2Bunsubscrib
> [email protected]>
> > > .
> > > For more options, visit this group at
> > >http://groups.google.com/group/rubyonrails-talk?hl=en.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Ruby on Rails: Talk" group.
> To post to this group, send email to [email protected].
> To unsubscribe from this group, send email to
> [email protected]<rubyonrails-talk%[email protected]>
> .
> For more options, visit this group at
> http://groups.google.com/group/rubyonrails-talk?hl=en.
>
>

-- 
You received this message because you are subscribed to the Google Groups "Ruby 
on Rails: Talk" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
For more options, visit this group at 
http://groups.google.com/group/rubyonrails-talk?hl=en.

Reply via email to