This *might* work... it''s worth trying at least. ;-)
@products = Brand.find( brand_id ).categories( category_id ).products
On Sun, Dec 28, 2008 at 9:25 AM, Rembrant
<rembrant-W+DFRoaZEX8yMF0/t3PSxWXnswh1EIUO@public.gmane.org>
wrote:>
> Dear readers,
>
> I''m very new to RoR, I walked trough the Agile Web Development
With
> Rails book, but I still got stuck. I''m trained as a designer, so
> coding isn''t really my branch but I try to get by. Anyways, here
is my
> question.
>
> I set up 3 tables including one join table like this:
>
>
>
> class Category < ActiveRecord::Base
> has_many :products
> has_many :brands, :through => :products, :uniq => true
> end
>
> class Brand < ActiveRecord::Base
> has_many :products
> has_many :categories, :through => :products
> end
>
> class Product < ActiveRecord::Base
> belongs_to :category
> belongs_to :brand
> end
>
>
>
> I can easily find brands belonging to a certain category doing this:
>
>
>
> @brands = Category.find(session[:selected_category]).brands
>
> (it gets the session var from a link_to_remote''s params[:id])
>
>
>
> But now I''m trying to find all the products that belong to a
certain
> brand and a certain category, so for example only Laptops (category)
> made by Apple (brand). This is the code I''ve got this far, but
I''m
> sure there must be something more elegant and something that just
> works better, because this code seems to fail frequently:
>
>
>
> @products = Product.find(:all, :conditions => "category_id =
''#{session
> [:selected_category].id}'' AND brand_id = ''#{session
> [:selected_brand].id}''")
>
>
>
> This doesn''t look too crazy from what I remember from mysql, but I
bet
> there is something way Rubier.
>
> Any help would be greatly appreciated.
>
> Kindest regards,
>
> - Rembrant
>
> >
>
--
Robby Russell
Chief Evangelist, Partner
PLANET ARGON, LLC
design // development // hosting w/Ruby on Rails
http://www.planetargon.com/
http://www.robbyonrails.com/
aim: planetargon
+1 503 445 2457
+1 877 55 ARGON [toll free]
+1 815 642 4068 [fax]
--~--~---------~--~----~------------~-------~--~----~
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
rubyonrails-talk-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
To unsubscribe from this group, send email to
rubyonrails-talk+unsubscribe-/JYPxA39Uh5TLH3MbocFFw@public.gmane.org
For more options, visit this group at
http://groups.google.com/group/rubyonrails-talk?hl=en
-~----------~----~----~----~------~----~------~--~---