我正在尝试使用Ruby On Rails和Backbone.js进行即时搜索。
我已将所有单词存储在名为Dictionary
的模型中。它包含所有单词的列表。
现在,我想创建一个搜索栏,如果我输入“c”,我想列出以“c”开头的所有单词,如果我输入“ca”,它应该列出所有以“ca”开头的单词。
是否有我可以学习的开源应用程序?
答案 0 :(得分: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()
)}
routes.rb
get "/search/:search" => "dictionaries#search", :as => :search
dictionaries_controller.rb
def search
@dictionarys = Dictionary.where("word LIKE ?", params[:search])
end
视图/ dictionarys / search.js.erb
$(".results").empty().append("<%= j( render @dictionaries) %>"
$(".spinning").hide()
views / dictionarys / _dictionary.html.erb partial
<li><%=dictionary.word%></li>
答案 1 :(得分:0)
使用jQuery auto_complete
,并连接AJAX调用以从数据库中获取值。请参阅jQuery Autocomplete documentation。
答案 2 :(得分:0)
你可以这样做。
GUI中的Onclick(),对ruby服务器进行ajax调用,输入的数据为密钥。
在ruby端使用类变量只加载一次字典数据,这样你就不必每次都进行db fetch。
现在在ruby端进行正则表达式匹配,并将数据发送到GUI,此ajax调用的onsuccess()相应地加载GUI小部件。
希望我足够清楚。