FreelanceWebDesigner.com
2006-Jul-26 01:40 UTC
[Rails] How to create table entry with multiple related categories?
Perhaps I should create a table row to hold an array of category ID''s? There''s probably an easy standard way of doing this in RoR and I just can''t wrap my brain around a practical way to do this right off. Specifically... I have a table that contains my product category names and another table that contains my actual product names with other product specific details. Each product needs to be assigned to multiple categories. It could be just two or perhaps ten categories, the number varies. I know how to create a has_many relationship for each category and I can get a category pulldown menu to appear in a new product entry form that works for assigning one category per product. How should I approach being able to have multiple categories for each product though? Should I create a table row in the products table for each possible category? Or create say five rows so each product can have up to five categories? Eventually I''d like to offer users to ability to filter product search results by selecting multiple category checkboxes. Any recommendations appreciated. Thanks, DAN -- Posted via http://www.ruby-forum.com/.
Andrew Stone
2006-Jul-26 02:26 UTC
[Rails] How to create table entry with multiple related categories?
I think has_and_belongs_to_many is what you are after. This setup requires 3 tables: product_categories products products_product_categories products_product_categories is defined as such (postgresql syntax): create table products_product_categories( product_id integer references products(id), product_category_id integer references product_categories(id), primary key (product_id, product_category_id) )without oids; This way products has_and_belongs_to_many product_categories and vice versa. -- Andrew Stone -------------- next part -------------- An HTML attachment was scrubbed... URL: http://wrath.rubyonrails.org/pipermail/rails/attachments/20060726/ee7b1147/attachment.html