2013-02-28 56 views
0

我要添加自動完成我的搜索欄自動完成搜索。但是,當我提交填寫完整的用戶我得到這個網址:Ruby on Rails的實現與使用預輸入(引導)

/users?utf8=✓&search=Thomas

而不是/users/23

我控制器

@users = User.find(:all, :select=>'name').map(&:name) 

JavaScript的

<%= javascript_tag "var autocomplete_items = #{ @users };" %> 

<script type="text/javascript"> 
      jQuery(document).ready(function() { 
       $('#auto_complete').typeahead({source: autocomplete_items}); 
      }); 
</script> 

我的形式

<%= form_tag users_path, :method => :get do %> 
    <%= text_field_tag :search, params[:search], :id => "auto_complete" %> 
<% end %> 

感謝您的幫助

回答

0

從我可以從引導文檔蒐集,typeahead僅設計來做到這一點 - 提前鍵入的文本。它只需要你的輸入,看看它的源代碼中是否有與輸入相匹配的東西,並提供了一些完成輸入的選擇。如果用戶選擇替代方式,則鍵入前面的字符將填充所選字符串。

所以,你得到的僅僅是在輸入字段中輸入字符串。

事先鍵入的內容不知道如何構建像你需要一個鏈接:/uses/23

事件如果引導鍵盤緩衝知道該怎麼做,你有沒有與所需的信息,只要它,因爲你只提供它與用戶的名字。

我想你想要做的是:

  • 同時發送用戶名和用戶路徑視圖
  • 使用某種自動完成構件的當選擇一個項目可以觸發回調。
  • 使用回調當用戶選擇

導航到所選擇的用戶路徑我不完全熟悉引導的預輸入 - 你可以做到這一點的東西吧。

但我主張用東西是更好地記錄,如jQuery UI:■自動完成。