我已经实现了一个搜索框,可以在我的数据库中搜索“疾病”表和“症状”表。现在我想在搜索框中添加自动完成功能。
我创建了一个名为“auto_complete_controller”的新控制器,它返回自动完成数据。我只是不确定如何结合搜索功能和自动完成功能:我希望搜索控制器中的“索引”操作返回搜索结果,而我的 auto_complete 控制器中的“索引”操作返回 auto_complete 数据.
请指导我如何修复我的 html 语法以及在 js.coffee 文件中写入的内容。我正在使用带有 jquery UI 的 rails 3.x 来自动完成,我更喜欢服务器端解决方案,这是我当前的代码:
main_page/index.html.erb:
<p>
<b>Syptoms / Illnesses</b>
<%= form_tag search_path, :method => 'get' do %>
<p>
<%= text_field_tag :search, params[:search] %> <br/>
<%= submit_tag "Search", :name => nil %>
</p>
<% end %>
</p>
auto_complete_controller.rb:
class AutoCompleteController < ApplicationController
def index
@results = Illness.order(:name).where("name like ?", "%#{params[:term]}%") + Symptom.order(:name).where("name like ?", "%#{params[:term]}%")
render json: @results.map(&:name)
end
end
search_controller.rb:
class SearchController < ApplicationController
def index
@results = Illness.search(params[:search]) + Symptom.search(params[:search])
respond_to do |format|
format.html # index.html.erb
format.json { render json: @results }
end
end
end
谢谢,李