Search Function


I have two tables Stores and Categories

Relationship of these tables are: Many to Many Store can have many categories Category can also have many stores

Now in the stores table I have a store_name and category_id attributes that links the category table to the store table via its Category_ID attribute.

The Category table only has category_id and category_description attributes.

I want to be able to perform a search on Categories index.html.erb page to find stores which fall into that particular category.

Therefore I need the search function to look into the stores table and match the category_id to the category_id in categories table, and return the store names with those categories.

I have tried some example but they don’t seem to be working. Can someone please help!!!!

In general, a many-to-many relationship involves three tables. Can you describe how you've done this relationship with Rails? Did you use a has_and_belongs_to_many with a categories_stories table? Or did you use a has_many :through association with a different through table?

hi Brian,

thanx for repylin back, its v.much appriciated.

yes your absolutely right. i have used a has_and_belongs_to_many with a join table being created called categoriesstores. this join "categoriesstores" has the attributes category_id and store_id.

The join table should be called categories_stores

Having setup the relationships and the tables, then, for example, if you have a store object from the database then you can use store.categories to get a collection of categories for that store.

Have you worked through the guides at

I can highly recommend the book Agile Development with Rails (

The railscasts at are excellent

A bit of googling will reveal numerous other guides and tutorials. Make sure any you work through are for rails 2 as otherwise you will get horribly confused when the tutorials don’t work.

Good luck