ruby-on-rails - 如何过滤范围内的特定值,如果有不需要的类型则隐藏?
问题描述
示例:我有 2 个预算,每个预算都有has_many budget_invoices
不同的类型...
Budget.first.budget_invoices.map{|x| x.type}
["BudgetInvoiceByWorkshopInput"]
Budget.last.budget_invoices.map{|x| x.type}
["BudgetInvoiceByInsurerInput", "BudgetInvoiceByWorkshopOutput"]
在我的范围内,我想过滤只有车间/保险公司类型budget_invoices
的预算。
通过车间:
includes(:budget => :budget_invoices).where('budget_invoices.type IN (?) AND budget_invoices.budget_id = budgets.id', ["BudgetInvoiceByWorkshopInput", "BudgetInvoiceByWorkshopOutput"])
通过保险公司:
includes(:budget => :budget_invoices).where('budget_invoices.type IN (?) AND budget_invoices.budget_id = budgets.id', ["BudgetInvoiceByInsurerInput", "BudgetInvoiceByInsurerOutput"])
当我使用“ByWorkshop”范围时,我得到的结果是第一个和最后一个预算,这是正确的。但是由于某种原因,当我将“ByWorkshop”范围与另一个范围一起使用时;不过滤具有保险公司类型budget_invoices 的预算...
includes(:budget => :budget_invoices).where('budget_invoices.type NOT IN (?) AND budget_invoices.budget_id = budgets.id',["BudgetInvoiceByInsurerInput", "BudgetInvoiceByInsurerOutput"])
...它仍然给我带来了第一个和最后一个预算,这是不正确的,它应该只给我带来第一个预算,因为最后一个包含我不想要的值...
解决方案
推荐阅读
- node.js - 通过 ElasticBeansStalk 上托管的 API Gateway 在 AWS S3 上上传图像
- java - Hibernate:返回不是实体的 DTO?
- python - 为什么我得到颠倒的图像?
- python - 通过在两个不同的数据框中按 ID 搜索来返回缺失的行
- react-native - 将元素附加到倒置 FlatList 的顶部
- python - 我正在尝试制作一个单词生成器来生成不存在的单词
- powershell - Powershell如何传递系统变量
- hibernate - 在保留父数据的同时尝试删除/更新子元素
- excel - VBA 访问,使用循环将具有不同参数的相同查询多次导出到单个 Excel 电子表格
- python - 在python中使用selenium进行网页抓取,点击按钮时遇到麻烦