Ruby On Rails と Backbone.js でアプリケーションのようなインスタント検索を作成しようとしています。
という名前のモデルにすべての単語を保存しましたDictionary
。それはすべての単語のリストが含まれています。ここで、検索バーを作成したいと思います。「c」と入力すると、同様に「c」で始まるすべての単語がリストされ、「ca」と入力すると、「ca」で始まるすべての単語がリストされます。
私が学べるオープンソースアプリケーションはありますか?
Ruby On Rails と Backbone.js でアプリケーションのようなインスタント検索を作成しようとしています。
という名前のモデルにすべての単語を保存しましたDictionary
。それはすべての単語のリストが含まれています。ここで、検索バーを作成したいと思います。「c」と入力すると、同様に「c」で始まるすべての単語がリストされ、「ca」と入力すると、「ca」で始まるすべての単語がリストされます。
私が学べるオープンソースアプリケーションはありますか?
このコードはテストしていません。誤字脱字があるかもしれませんが、うまくいくと思います。うまくいかない場合は編集できるようにコメントしてください
見る
<%= 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>
jQueryauto_complete
を使用し、データベースから値を取得するために AJAX 呼び出しを接続します。jQuery オートコンプリートのドキュメント を参照してください。
このようにすることができます。
GUI の Onclick() で、入力したデータをキーに Ruby サーバーに ajax 呼び出しを行います。
Ruby 側でクラス変数を使用して辞書データを 1 回だけロードし、毎回 db fetch を実行する必要がないようにします。
ここで、Ruby 側で正規表現の照合を行い、データを GUI に送信します。この ajax 呼び出しの onsuccess() は、それに応じて GUI ウィジェットをロードします。
私が十分に明確だったことを願っています。