好的,我所拥有的是一个图书馆数据库系统,用户可以在其中在搜索栏中输入书籍,然后当他们点击进入时显示匹配他们搜索的书籍。我想要做的是得到它,这样当用户在搜索栏中键入“a”时,所有记录都将显示在菜单下方的下拉菜单中,并带有字母“a”,然后当他们输入下一个字母“l " 所有带有“al”的记录都会显示在一个下拉列表中,然后是“ali”,以此类推。我对宝石的了解不多,但想学习。他们是我能做到这一点的方法吗?我正在使用 rails 4.0.1 并且现在有一个模糊搜索方法。
user4227507
问问题
852 次
2 回答
1
或者,如果你想自己动手......这是它的要点,可能需要一些调整:
路线.rb
get '/search' => 'search#autocomplete', as: :search_autocomplete
search_controller.rb
def autocomplete
search_term = params[:search]
@results = YourModel.where( "your_field LIKE search_term" )
respond_to do |format|
format.json @results
end
end
your_view.html.erb
<%= form_tag( search_autocomplete_path, method: "get" ) do %>
<%= text_field_tag( :search, params[:search], placeholder: 'Enter a search term...', :id => 'autocomplete_search' ) %>
<%= submit_tag( "Go" ) %>
<div id="autocomplete_search_results">
<% end %>
some_coffeescript_file.js.coffee
$( document ).ready ->
$.ajax '/search',
type: 'GET'
parameters: $( "#autocomplete_search" ).val()
dataType: 'json'
success: ( data ) ->
# here you'll have to append the results to whichever div/container you have in place
$( '#autocomplete_search_results' ).append "#{ data }"
于 2014-11-07T15:41:17.997 回答
0
查看 Twitter typeahead.js jquery 插件https://github.com/yourabi/twitter-typeahead-rails。
于 2014-11-07T15:29:00.387 回答