2013-02-28 58 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:■自动完成。