我有带有字段的遗产表格:
Estates 数据库中的字段:
我想进行查询以查找例如: Find flat where surface> 40 AND surface<100 AND the price_min>200000 但在此查询中 price_max 对我来说并不重要。所以 params[:price_max] 是空的。但是在下一个查询中,有人可能想通过表面和价格来查找。所以,我现在不知道如何查询表单中的某些参数有时是空的,有时不是。
我通常这样做:
@estates = Estate.all # or another default scope
@estates = @estates.where(surface_min: params[:surface_min]) if params[:surface_min]
@estates = @estates.where(surface_max: params[:surface_max]) if params[:surface_max]
...
如果您需要范围查询而不是直接的相等性检查,则需要更多的努力。但似乎对您来说有问题的部分是如何进行可选过滤。这个答案解决了这个问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句