我正在尝试在 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
字典控制器.rb
def search
@dictionarys = Dictionary.where("word LIKE ?", params[:search])
end
意见/字典/search.js.erb
$(".results").empty().append("<%= j( render @dictionaries) %>"
$(".spinning").hide()
意见/字典/_dictionary.html.erb 部分
<li><%=dictionary.word%></li>
使用 jQuery auto_complete
,并将 AJAX 调用与它连接以从数据库中获取值。请参阅jQuery 自动完成文档。
你可以这样做。
在 GUI 中的 Onclick() 中,对 ruby 服务器进行 ajax 调用,输入的数据作为键。
在 ruby 端使用类变量只加载一次字典数据,这样您就不需要每次都进行 db fetch 。
现在在 ruby 端进行正则表达式匹配,并将数据发送到 GUI,此 ajax 调用的 onsuccess() 相应地加载 GUI 小部件。
希望我足够清楚。