0

Ruby On Rails と Backbone.js でアプリケーションのようなインスタント検索を作成しようとしています。

という名前のモデルにすべての単語を保存しましたDictionary。それはすべての単語のリストが含まれています。ここで、検索バーを作成したいと思います。「c」と入力すると、同様に「c」で始まるすべての単語がリストされ、「ca」と入力すると、「ca」で始まるすべての単語がリストされます。

私が学べるオープンソースアプリケーションはありますか?

4

3 に答える 3

1

このコードはテストしていません。誤字脱字があるかもしれませんが、うまくいくと思います。うまくいかない場合は編集できるようにコメントしてください

見る

<%= text_field_tag 'search', :nil, :class => "search_box" %>
 <ul class="results">
    <span class="spinning" style="display:none;"></span>
 </ul>

jquery

$(".search_box").keyup(function(){
    $.get ("/search/" + this.value)
    $(".spinning").show()
)}

ルート.rb

get "/search/:search" => "dictionaries#search", :as => :search

dictionaries_controller.rb

def search
 @dictionarys = Dictionary.where("word LIKE ?", params[:search])
end

ビュー/辞書/search.js.erb

$(".results").empty().append("<%= j( render @dictionaries) %>"
$(".spinning").hide()

views/dictionarys/_dictionary.html.erb パーシャル

<li><%=dictionary.word%></li>
于 2012-12-13T13:23:31.033 に答える
0

jQueryauto_completeを使用し、データベースから値を取得するために AJAX 呼び出しを接続します。jQuery オートコンプリートのドキュメント を参照してください。

于 2012-12-13T11:41:50.797 に答える
0

このようにすることができます。

GUI の Onclick() で、入力したデータをキーに Ruby サーバーに ajax 呼び出しを行います。

Ruby 側でクラス変数を使用して辞書データを 1 回だけロードし、毎回 db fetch を実行する必要がないようにします。

ここで、Ruby 側で正規表現の照合を行い、データを GUI に送信します。この ajax 呼び出しの onsuccess() は、それに応じて GUI ウィジェットをロードします。

私が十分に明確だったことを願っています。

于 2012-12-13T12:08:33.713 に答える