var items = new Bloodhound(-6ren">
gpt4 book ai didi

javascript - 预先输入重复记录

转载 作者:行者123 更新时间:2023-12-03 02:09:22 24 4
gpt4 key购买 nike

我在 Rails 应用程序中使用 typeahead,如下所示:

<%= form_tag search_path, :method => "get", id: "search-form" do %>
<%= text_field_tag :search, params[:search], id: "search" %>
<%= submit_tag "Search" %>
<%end%>

<script>
var items = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.whitespace,
queryTokenizer: Bloodhound.tokenizers.whitespace,
remote: {
url: '/items/autocomplete?search=%SEARCH',
wildcard: '%SEARCH'
}
});


$('#search')
.typeahead(null, {source: items})
.on('typeahead:selected', function(e){
$("#search-form").submit();
}).focus();
</script>

Controller 操作:

def autocomplete
render json: Item.search(params[:search], {
fields: ["title"],
match: :word_start,
limit: 10,
load: false,
misspellings: {below: 5}
}).map(&:title)
end

自动完成工作正常,但显示重复的结果。有什么想法可以解决这个问题吗?

最佳答案

正如 @danny 基本上建议的那样,在 map 之后使用 .uniq

def autocomplete
render json: Item.search(params[:search], {
fields: ["title"],
match: :word_start,
limit: 10,
load: false,
misspellings: {below: 5}
}).map(&:title).uniq
end

关于javascript - 预先输入重复记录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49647458/

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