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

字典控制器.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>
于 2012-12-13T13:23:31.033 回答
0

使用 jQuery auto_complete,并将 AJAX 调用与它连接以从数据库中获取值。请参阅jQuery 自动完成文档

于 2012-12-13T11:41:50.797 回答
0

你可以这样做。

在 GUI 中的 Onclick() 中,对 ruby​​ 服务器进行 ajax 调用,输入的数据作为键。

在 ruby​​ 端使用类变量只加载一次字典数据,这样您就不需要每次都进行 db fetch 。

现在在 ruby​​ 端进行正则表达式匹配,并将数据发送到 GUI,此 ajax 调用的 onsuccess() 相应地加载 GUI 小部件。

希望我足够清楚。

于 2012-12-13T12:08:33.713 回答