簡體   English   中英

ruby on rails通過自動完成實現搜索

[英]ruby on rails implement search with auto complete

我已經實現了一個搜索框,用於搜索我的數據庫中的“疾病”表和“症狀”表。 現在我想在搜索框中添加自動完成功能。

我創建了一個名為“auto_complete_controller”的新控制器,它返回自動完成數據。 我只是不確定如何結合搜索功能和自動完成功能:我希望搜索控制器中的“索引”操作返回搜索結果,並且我的auto_complete控制器中的“索引”操作返回auto_complete數據。

請指導我如何修復我的html語法以及在js.coffee文件中寫入的內容。 我正在使用rails 3.x和jquery UI進行自動完成,我更喜歡服務器端解決方案,這是我當前的代碼:

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

謝謝,李

我有同樣的問題,不得不為它創建這個寶石: https//github.com/rayasocialmedia/rails_autocomplete

以下是如何在Twitter-Bootstrap中進行動態預測; 我確定它與jQuery類似:

https://gist.github.com/1848558

本質上,通過監聽非導航鍵擊,它會觸發對控制器的AJAX部分文本搜索。 然后,此返回數據將填充要顯示的JS框架的預先輸入/自動完成數據。 這意味着你真的只需要一個SearchController。

嘗試使用rails3-jquery-autocomplete 我正在使用它並且具有與您相同的要求,它們可以很好地協同工作。 如果您需要進一步的幫助,請告訴我。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM