Ruby on rails RubyonRails使用Typeahead(引导)实现自动完成搜索
我想将自动完成添加到我的搜索栏。但当我提交完成的用户时,我会得到以下url:Ruby on rails RubyonRails使用Typeahead(引导)实现自动完成搜索,ruby-on-rails,ruby,autocomplete,bootstrap-typeahead,Ruby On Rails,Ruby,Autocomplete,Bootstrap Typeahead,我想将自动完成添加到我的搜索栏。但当我提交完成的用户时,我会得到以下url: /users?utf8=✓&搜索=托马斯 而不是/users/23 我的控制器 @users = User.find(:all, :select=>'name').map(&:name) Javascript <%= javascript_tag "var autocomplete_items = #{ @users };" %> <script type="text/javas
/users?utf8=✓&搜索=托马斯
而不是/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>
jQuery(文档).ready(函数(){
$('auto#u complete').typeahead({source:autocomplete_items});
});
我的表格
<%= form_tag users_path, :method => :get do %>
<%= text_field_tag :search, params[:search], :id => "auto_complete" %>
<% end %>
:get do%>
“自动完成”%>
感谢您的帮助根据我从引导文档中收集到的信息,
typeahead
的设计就是为了做到这一点——在文本之前键入。它只接受您的输入,查看其源代码中是否有与输入匹配的内容,并提供一些替代方案来完成输入。如果用户选择了替代项,则typeahead将填充所选字符串
因此,您得到的唯一结果是输入字段中的字符串
Typeahead不知道如何构建您所需的链接:/uses/23
事件如果引导程序typeahead知道如何执行此操作,则您并没有向它提供所需的信息,因为您只向它提供了用户的名称
我想你想做的是:
- 向视图发送用户名和用户路径
- 使用某种类型的自动完成小部件,它可以在选择某个项目时触发回调
- 选择用户时,使用回调导航到所选用户路径