说我有一些我想搜索的产品。
我想找到一些最小值和/或最大值的产品,比如长度,宽度和高度。
我能做到:
any_of do
with(:length).greater_than_or_equal_to(length_min)
with(:length).less_than_or_equal_to(length_max)
with(:width).greater_than_or_equal_to(width_min)
with(:width).less_than_or_equal_to(width_min)
with(:height).greater_than_or_equal_to(height_min)
with(:height).less_than_or_equal_to(height_min)
end
这将为我提供符合其中任何一种的产品。
我想退回所有产品,但按照符合最多标准的产品排序。
例如:
产品A在所有长度,宽度和高度范围内首先是,然后产品C只匹配长度和宽度,然后产品B不匹配任何长度,宽度或高度范围。
任何人都知道怎么做?
非常感谢 瑞克
答案 0 :(得分:0)
查看https://github.com/sunspot/sunspot上的文档,如果任何项目符合任何条件,那么使用any_of do
似乎会返回结果。
# Posts that do not have an expired time or have not yet expired
Post.search do
any_of do
with(:expired_at).greater_than(Time.now)
with(:expired_at, nil)
end
end