我有一个Rails应用程序与以下模式:
User (id, username, user_type, master_id)项目(id,itemname,is_master,master_id)修理(id, in_date, out_date, user_id, item_id)
应用程序很小,所以我尽量保持db尽可能简单。用户可以是Admin、Dealer或Manager。一个经理可以有多个经销商(都存储在同一个用户表中)。
一个项目可以是一个主项目,如计算机(有许多子项目,如键盘,鼠标),也可以只是一个小的子项目。一个主条目下可以有多个子条目。
A repair是该项目的维修历史记录。一个修复有一个项目和关联的用户。
我有一个搜索与以下参数(所有可选)
- 管理器名称 <
- 经销商名称/gh><
- 主项目/gh>
- 子条目 在日期
- 出单日期
如果没有指定经销商名称,我希望结果包含指定管理器中的所有经销商,如果没有指定子项目,我希望主项目下的所有项目都在结果中。
如何定义搜索控制器以保持代码简单和可维护?
Item.joins :repairs => :user
将为您完成从物品到修理到用户的连接。在此之后,如果提供了各个字段,只需按相等性过滤即可。幸运的是,您可以在rails中非常习惯地做到这一点,通过构造搜索表单,使字段名称与.where
的哈希值相匹配。
你需要过滤掉所有的空参数(空或nil),这取决于你的视图的结构。params.reject {|k,v| v.blank?}
应该为你做。
把它们放在一起,然后
Item.joins(:repairs => :user).where(params.reject {|k,v| v.blank?})
或类似于
的内容可能会奏效。
相关内容
- 没有找到相关文章
最新更新
- 汇编函数地址表和函数下或数据段中的数据
- 如何解析常规(不是换行分隔)json与Apache Beam和杰克逊?
- 检索策略.netprofit,策略.由于在循环/迭代(FOR)中更改参数而关闭的交易
- 绑定到第三类的两个类之间的关系是什么?
- 如何发送一个GET请求与SetTimeout和获取数据,如果它还没有准备好?
- AND搜索字符串数组Elasticsearch
- 如何在Python中访问Object值
- 试图让计算机猜出我的数字,但要让上限和下限工作
- 自治数据库是否提供与本地数据库相同的NLS支持?
- OpenAI嵌入API:如何嵌入工作?
- 如何在C#中用正则表达式查找并替换较大文件(150MB-250MB)中的文本
- 如何在Visual Studio Code中更改从交互式Jupyter shell中保存图形的默认路径?
- PHP 8属性构造函数调用
- 我在为java选择selenium中的按钮时遇到问题
- 一个字符串如何可以是接口类型{}
- TYPO3 v11.5 #1578950324 RuntimeException -给定的页面记录无效.失踪的uid.B
- 如何使WebGPU运行在Chrome金丝雀97?
- 我想通过input split将其分为command, key, value,并输入到字典中
- 仅使用CSS在单选按钮选中后切换div内容
- 从列表中自动创建多个Google工作表
- 在django上处理select multiple
- Guid在视图页面中显示空字符串.净MVC)
- 所有大写字母和所有非字母字符的正则表达式是什么
- Python Pyparsing Located vs locatedExpr
- c#中具有列表值的字典的类型转换
- c++继承模板特化
- 为什么我的flappy bird游戏只加载图像?
- 如何使用Maven从pom.xml中访问settings.xml中的元素?
- 错误:不支持 -: 'list' 和'int'的操作数类型
- 我的输出总是相同的,但我应该根据我输入的数字给出不同的答案"efektywnosctypu"
热门标签:
javascript python java c# php android html jquery c++ css ios sql mysql arrays asp.net json python-3.x ruby-on-rails .net sql-server django objective-c excel regex ruby linux ajax iphone xml vba spring asp.net-mvc database wordpress string postgresql wpf windows xcode bash git oracle list vb.net multithreading eclipse algorithm macos powershell visual-studio image forms numpy scala function api selenium