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

--~--~---------~--~----~------------~-------~--~----~
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