3

DB内の「Illnesses」テーブルと「symptoms」テーブルを検索する検索ボックスを実装しました。次に、検索ボックスにオートコンプリートを追加します。

オートコンプリートデータを返す「auto_complete_controller」という新しいコントローラーを作成しました。検索機能とオートコンプリート機能を組み合わせる方法がわかりません。検索コントローラーの「インデックス」アクションで検索結果を返し、オートコンプリートコントローラーの「インデックス」アクションでオートコンプリートデータを返します。 。

HTML構文を修正する方法とjs.coffeeファイルに何を書き込むかを教えてください。オートコンプリート用のjqueryUIでrails3.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

ありがとう、李

4

3 に答える 3

1

私は同じ問題を抱えていたので、この宝石を作成する必要がありました: https://github.com/rayasocialmedia/rails_autocomplete

于 2013-03-27T14:37:56.953 に答える
0

Twitter-Bootstrap で動的先行入力を行う方法は次のとおりです。jQueryでも似たようなものだと確信しています:

https://gist.github.com/1848558

基本的に、ナビゲーション以外のキーストロークをリッスンすることで、コントローラーへの AJAX 部分テキスト検索をトリガーします。この戻りデータは、表示される JS フレームワークの先行入力/オートコンプリート データに入力されます。これは、本当に 1 つの SearchController だけが必要であることを意味します。

于 2012-06-04T17:40:49.273 に答える
0

rails3-jquery-autocomplete を試してください。私はそれを使用していて、あなたと同じ要件を持っていました。それらは一緒にうまく機能します。さらにサポートが必要な場合はお知らせください。

于 2012-07-06T21:12:54.927 に答える