gpt4 book ai didi

ruby-on-rails - Searchkick-2个单独列上的范围

转载 作者:行者123 更新时间:2023-12-03 01:33:24 26 4
gpt4 key购买 nike

我正在尝试使用2列创建多个范围。我知道可以实现多个范围,但是我需要2列才能使用。
在我的模型中,我有一个min_agemax_age。用户可以选择多个年龄来进行过滤,例如:选项为10、11、12、13、14、15、16、17、18,用户选择11、13和16。如何从中过滤模型选择的选项?
另外,我想我需要将选定的选项更改为一个范围,以便上面的内容变为10-11、12-13和15-16,以便可以通过使用gtlt参数来使用范围过滤器。但是,也许范围过滤器对此不起作用?
编辑
在SQL中,我可以执行以下操作,该操作返回我希望看到的内容,因此我只需要通过Searchkick将其转换为elasticsearch语法。

  select * from events
where (min_age <= 11 AND max_age >= 11)
OR (min_age <= 13 AND max_age >= 13)
OR (min_age <= 16 AND max_age >= 16)

最佳答案

在不研究范围是否是应用程序逻辑的最佳选择的情况下,要实现与SQL等效的效果,可以使用如下所示的内容:

Event.search(
"*",
where: {
_or: [
{min_age: {lte: 11}, max_age: {gte: 11)},
{min_age: {lte: 13}, max_age: {gte: 13)},
{min_age: {lte: 16}, max_age: {gte: 16)}
]
}
)

关于ruby-on-rails - Searchkick-2个单独列上的范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54563588/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com