2012-06-04 5 views
3

DB의 "Illnesses"테이블과 "symptoms"테이블을 검색하는 검색 상자를 구현했습니다. 이제 자동 완성을 검색 창에 추가하고 싶습니다.ruby ​​on rails가 자동 완성으로 검색을 구현합니다.

"auto_complete_controller"라는 새로운 컨트롤러를 만들어 자동 완성 데이터를 반환합니다. 검색 기능과 자동 완성 기능을 결합하는 방법을 잘 모르겠습니다. 내 검색 컨트롤러에서 "색인"작업으로 검색 결과를 반환하고 auto_complete 컨트롤러에서 "색인"작업으로 auto_complete 데이터.

내 HTML 구문을 수정하고 js.coffee 파일에 쓸 내용을 안내해주세요. 나는 자동 완성에 대한 JQuery와 UI에 레일 3.x를 사용하고 , I는 서버 측 솔루션을 선호하고,이 내 현재 코드입니다 :

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 

T 행크스, 리

답변

0

다음은 Twitter-Bootstrap에서 다이내믹 타이프 헤드를 수행하는 방법입니다. 내가 jQuery를 위해이 비슷한 확신 :

https://gist.github.com/1848558

기본적으로 비 탐색 키 입력을 듣고함으로써, 컨트롤러에 AJAX 부분 텍스트 검색을 트리거합니다. 그런 다음이 반환 데이터는 표시 할 JS 프레임 워크의 선행/자동 완성 데이터를 채 웁니다. 이것은 실제로 하나의 SearchController 만 필요하다는 것을 의미합니다.

0

시도 rails3-jquery-autocomplete. 나는 그것을 사용하고 당신과 같은 요구 사항을 가지고 있으며, 그들은 함께 잘 작동합니다. 추가 도움이 필요하면 알려주세요.

관련 문제