I have a Rails app with following schema:
User (id, username, user_type, master_id) Item ( id,itemname,master_id) Repairs (id, in_date, out_date, user_id, item_id)
The app is small so I have tried keeping db as simple as possible. A user can be Admin, Dealer or Manager. A manager can have many dealers under him(Both stored in same user table).
An Item can be a ‘master item’ like a computer(with many sub items like keyboard,mouse) or it can be just a small sub item. So a master item can have many sub items under it.
A repair is Repair history for item. A repair has an item and user associated with it.
I have a search for with following parameters ( ALl optional)
- Manager Name
- Dealer Name
- Master Item
- Sub Item
- In date
- Out date
If no ‘Dealer Name’ is specified I want results to have all Dealers under the specified ‘manager name’ included in results, if no ‘Sub Item’ is specified I want all items under ‘Master Item’ to be in the results.
How should the search controller be defined so as to keep code simple and maintainable? I dont really want to do an ‘if’ for each condition.