ruby - Sinatra App 中的增量搜索

标签 ruby sinatra haml

我想在我正在开发的 Sinatra 应用程序中添加增量搜索/实时搜索选项。我将 data_mapper 用作 ORM,将 html 与 Haml 一起使用。我对 Ruby 很熟悉,但 Sinatra 对我来说是个新手。

我想要一个搜索字段,在搜索字段中输入字符时会显示结果列表,正如我们从 google 中了解到的那样。我希望将搜索字段中的字符发送回 Sinatra 应用程序以执行 data_mapper 查询,如下面的 Sinatra 部分所示:

get '/car' do
    @cars = CarDb.all(:reg_nr.like => '#{chars_from_srcBox_id}%') 
    haml :car    
end

汽车.haml:

!!!
 %html
  %head
    %title Sinatra App
     %link(rel='stylesheet' href='views/style.css')
     %link(href='http://fonts.googleapis.com/css?family=Roboto:400,300' rel='stylesheet' type='text/css')
  %body 
    %form{ :class => "formContainer", :action => "", :method => "post"}
      %fieldset
        %ol
          %ul(style="list-style-type:none")
            %li
              %label{:for => ":car_search"} Search Car.:
              %input{:type =>"carData", :name => "car_search", :class => "txtBox", :id=> srcBox}

    %ul(style="list-style-type:none")
      - @cars.each do |c|
        %li
         = "#{c.reg_nr} - #{c.car_make} #{c.car_model}"

我想我需要一些 JavaScript/Coffescript 来将搜索字段中的字符发送回 Sinatra 应用程序?我如何将 Sinatra 与 JavaScript 链接起来?

我遇到了 gon-sinatra,这会是我需要的吗?还有其他更明显的选择吗?

彼得弟兄

最佳答案

如果假设“增量搜索”和“自动完成”大部分是相同的东西,请尝试在 Sinatra 中结合 AJAX 功能(您可以在答案 here 中找到示例)在服务器端,例如 typeahead.js JavaScript 库在客户端

这是其他有趣的客户端库:

关于ruby - Sinatra App 中的增量搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27688542/

相关文章:

javascript - 将 ruby​​ 中的哈希数组中的数据传递到 javascript 完整日历中

ruby-on-rails - 如何定期获取/更新 Rails 中的值?

ruby - 在 erb 中使用 block (Sinatra,而不是 Rails)

ruby-on-rails - 如何嵌入Haml的错误::Engine in a web page in production on Heroku

ruby + cucumber : How to execute cucumber in code?

ruby-on-rails - Ruby 代码在路由工作时没有得到解释

rubygems - 无法激活 sinatra-1.4.7,因为 rack-2.0.1 与 rack (~> 1.5) 冲突

javascript - 告诉我为什么我不应该这样做 : Sinatra API with Full JS/HTML Frontend

ruby - 条件逻辑在 haml 中不起作用

ruby-on-rails - Ruby on Rails 中的 HAML 能否以 "ordered hash"方式输出 HTML 属性?