我有一个具有以下架构的 Rails 应用程序:
用户 (id, username, user_type, master_id) 项目 (id,itemname,is_master,master_id) 维修 (id, in_date, out_date, user_id, item_id)
该应用程序很小,因此我尝试使 db 尽可能简单。用户可以是管理员、经销商或经理。一个经理可以有许多经销商在他下面(都存储在同一个用户表中)。
一个项目可以是像计算机这样的主项目(具有许多子项目,如键盘、鼠标),也可以只是一个小的子项目。一个主条目下可以有许多子条目。
修复是项目的修复历史记录。维修具有关联的项目和用户。
我使用以下参数进行搜索( ALL 可选)
- 经理姓名
- 经销商名称
- 主项目
- 子项
- 在日期
- 过期日期
如果未指定经销商名称,我希望结果中指定经理中的所有经销商,如果未指定子项目,我希望主项目下的所有项目都在结果中。
应该如何定义搜索控制器以保持代码简单和可维护?我真的不想为每个条件做一个“如果”。