gpt4 book ai didi

ruby-on-rails - searchkick - 具有多个属性的自动完成

转载 作者:行者123 更新时间:2023-12-02 22:51:23 27 4
gpt4 key购买 nike

使用给定的单个属性进行搜索时自动完成功能正常 here .

可以通过->(根据this)自动完成多个属性,例如(名称,城市,国家/地区)

def autocomplete
Doctor.search(params[:query], autocomplete: true, limit: 10).map{|doctor| doctor.slice(:name, :city, :country) }
end

但是,这会导致自动完成下拉列表/建议显示“未定义”。

对于提前输入,我正在使用:

<script type="text/javascript" src="//cdnjs.cloudflare.com/ajax/libs/typeahead.js/0.9.3/typeahead.min.js"></script>

在代码中引用它:

$( function () {
$("#search").typeahead({
name: "doctor",
remote: "/doctors/autocomplete?query=%QUERY"
});


});

由于返回了多组数据,是否需要在 typeahead js 文件中进行一些更改?

最佳答案

您需要返回一个哈希

您在 doctors Controller 中的 autocomplete 操作需要如下所示:

def autocomplete
render json: Doctor.search(params[:query], autocomplete: true, limit: 10).map do |doctor| { name: doctor.name, city: doctor.city, country: doctor.country }
end
end

在输入选项中添加 displayKey:

$( function () {
$("#search").typeahead({
name: "doctor",
displayKey: 'name',
remote: "/doctors/autocomplete?query=%QUERY"
});
});

您还可以阅读this文章,看看是否有帮助。

关于ruby-on-rails - searchkick - 具有多个属性的自动完成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28643262/

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