gpt4 book ai didi

jquery - 在 rails-jquery-autocomplete 中使用额外的搜索字段

转载 作者:太空宇宙 更新时间:2023-11-03 16:23:03 25 4
gpt4 key购买 nike

我已经使用这个 gem 成功地创建了表单:https://github.com/bigtunacan/rails-jquery-autocomplete

问题是我希望它不仅按源表的名称 字段进行过滤。为此,我尝试使用 gem 文档中提到的 :fields 属性。但是呈现的 SQL 仍然仅包含按名称过滤,尽管 GET 请求包含添加的字段。

    <%= f.autocomplete_field :name, autocomplete_ad_user_name_component_associated_users_path(@component), 
:update_elements => {:username => '#associated_user_username',
:password => '#associated_user_password'},
:fields => {:client_id => '#client_id'},
class: 'form-control' %>

我是否需要创建自定义自动完成功能才能使其正常工作或什么?也许我只需要编辑默认创建的函数,但我在哪里可以找到它?

最佳答案

您需要定义自定义自动完成方法。

这应该覆盖 get_autocomplete_items 方法。将 ActiveRecord 结果转换为 OpenStruct 也很关键。我在下面包含了一个示例。

  def get_autocomplete_items(parameters)
result_set = TableName.search do
fulltext parameters[:term] do
fields (:first_name)
fields (:middle_name)
fields (:last_name)
end
order_by (:last_name)
paginate page: 1, per_page: parameters[:options][:limit]+1
end.results

new_result_set = []
hash = {}

# Translating the ActiveRecord object into an OpenStruct is necessary for the rails-jquery-autocomplete
# Trying to use the ActiveRecord model result directly will result in horrible pain and suffering.
result_set.each do |r|
h = {}
h[:id] = r.id
h[:email] = r.email_address
unless hash[r.email]
new_result_set << OpenStruct.new(h)
hash[r.email] = true
end
end

if new_result_set.empty?
new_result_set << OpenStruct.new(:email => 'No Match, Search again')
elsif(result_set.count > parameters[:options][:limit])
new_result_set << OpenStruct.new(:email => 'Too many results, type more characters')
end
new_result_set
end

关于jquery - 在 rails-jquery-autocomplete 中使用额外的搜索字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30624357/

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