7
假设我正在建立一个酒店预订平台,并且每个房间记录都有可用性日历。常见的搜索标准是按持续时间进行搜索。如果用户输入开始日期和结束日期,并且数据库提取从该持续时间未被占用的房间。如何在阿尔戈利亚的持续时间搜索
我已经实施了一种非常天真的方法,将被占用的天数存储为数天。
attribute :occupied_at_i do
array = []
if !occupied_at.empty?
occupied_at.each do |date|
array << Time.parse(date).to_i
end
end
array
end
,然后在客户端,我添加以下JavaScript代码,以交叉检查,如果这一天是在numericRefinement
// Date Filters
$('.date-field')
.on('change', function() {
if(_.every(_.map($('.date-field'), function(date) {return _.isEmpty(date.value) }), function(n) {return n==false;})) {
helper.clearRefinements('occupied_at_i');
var arrayOfDates = addDateFilters();
_.forEach(arrayOfDates, function(n) {
helper.addNumericRefinement('occupied_at_i', '!=', n);
});
showClearAllFilters();
helper.search();
}
});
所以,这显然是不这样做的好方法,我想知道什么是更好的利用algolia和持续时间搜索?
感谢
我确实相信这是解决您的问题的好方法。可用性搜索总是很难处理。这个解决方案中有什么让你感到不安? – Jerska