`
jsntghf
  • 浏览: 2526226 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

auto_complete的实现

阅读更多

rails2.0以前的版本中类库里已经封装了该功能,rails2.0以后的版本中该功能已经被分离了出来,作为插件使用。

 

首先,是进行插件的安装。通过以下命令来安装插件:

 

ruby script/plugin install http://dev.rubyonrails.com/svn/rails/plugins/auto_complete/

 

接下来看一下具体实现。

 

首先,确保需要的js已经导入进来:

 

<%= javascript_include_tag :defaults %> 

 

然后,控制器中加入以下这句:

 

auto_complete_for :entry, :title

 

这里的entry对应模型名,title对应字段名。

 

页面代码如下:

 

<%= text_field_with_auto_complete :entry, :title %>

 

控制器中还需要加入auto_complete_for_entry_title方法,代码如下:

 

  def auto_complete_for_entry_title
    @entries = Entry.find :all, :conditions => ["title LIKE ?", "%" + params[:entry][:title] + "%"]
    render :inline => "<%= auto_complete_result @entries, 'title' %>"
  end

 

如果不能运行或者运行不稳定的话,控制器还得加上以下代码:

 

skip_before_filter :verify_authenticity_token, :only => [:auto_complete_for_entry_title]

 

最后,还得配一下路由:

 

map.resources :entries, :collection => {:auto_complete_for_entry_title => :post}

 

如果想修改默认的auto_complete的css样式,到auto_complete_macros_helper.rb文件下找到auto_complete_stylesheet方法修改即可。

 

示例图如下:

 

如果你想输入多个关键字都有提示的话,例如用空格隔开:

 

<%= text_field_with_auto_complete :entry, :title, {}, {:method => :post, :tokens => ' '} %>

 

如果你想在光标进入输入框就提示的话,可以这样做:

 

<%= text_field_with_auto_complete :entry, :title, {:onfocus => "entry_title_auto_completer.activate()"}, {:method => :post, :tokens => ' '} %>

 

分享到:
评论

相关推荐

    auto_complete_string.rar_C 联想输入_c string

    在本项目中,我们关注的是"auto_complete_string.rar"这个压缩包,它包含了一个用C++实现的输入联想字符串匹配功能。这个功能通常用于各种用户界面,如搜索引擎、文本编辑器或命令行工具,以提高用户输入效率。 ...

    android auto_complete_text

    标题"android auto_complete_text"表明我们将讨论的是如何自定义和优化这个控件。 `AutoCompleteTextView` 是 `EditText` 的扩展,它具有自动补全功能。当用户在文本框中输入文字时,系统会根据预设的数据源(如...

    ctags插件下载地址亲测可用

    "auto_complete_show_description_doc_string_version_description": true, "auto_complete_show_description_doc_string_license_description": true, "auto_complete_show_description_doc_string_see_...

    应用源码之37.Spinner和Auto_Complete控件学习.zip

    总之,"应用源码之37.Spinner和Auto_Complete控件学习.zip"是一个宝贵的资源,它提供了深入了解和实践这两种控件的机会。通过研究和实践,开发者可以增强对Android UI组件的理解,提升自己的开发技能。

    Android应用源码之37.Spinner和Auto_Complete控件学习.zip

    通过这份源码学习资料,开发者可以更深入地了解这两个控件的内部实现,从而在实际项目中更加灵活地应用,提高应用的用户体验。同时,源码阅读也能帮助开发者提高问题排查能力,当遇到相关问题时能更快定位并解决。在...

    Android应用源码之37.Spinner和Auto_Complete控件学习-IT计算机-毕业设计.zip

    本项目是一个源码示例,旨在帮助学生或开发者深入理解这两种控件的使用和实现,尤其对于正在进行毕业设计或者准备论文的学生,这是一个非常实用的学习资源。 Spinner控件在Android中通常用于创建一个下拉菜单,它...

    auto-complete 自动完成 智能提示 代码联想

    在编程和软件开发领域,"自动完成"(Auto-Complete)和"智能提示"(Intelligent Suggestion)是提升效率和生产力的关键特性。这些功能在编写代码时提供实时的建议,帮助开发者快速输入复杂的语法结构,减少手动输入...

    Auto_Complete_Suggestions_Box:用CodeSandbox创建

    在项目"Auto_Complete_Suggestions_Box-main"中,我们可以看到具体的实现细节,比如如何设置DOM元素,如何组织匹配算法,以及如何响应用户的交互。这些代码通常会包含一些关键函数,如`handleInputChange`用于处理...

    使用JQuery自动完成插件Auto Complete详解

    jQuery Auto Complete 插件是一个非常实用的工具,用于在网页中实现自动填充功能,尤其适用于搜索框,帮助用户快速找到他们正在寻找的信息。本篇文章将深入探讨如何使用jQuery Auto Complete插件,以及如何将其整合...

    win_auto_complete:Windows IAutoComplete 东西的包装器-开源

    《Windows IAutoComplete 包装器的开源实现详解》 在Windows编程中,IAutoComplete接口是一个非常实用的工具,它能为输入框提供自动完成的功能,极大地提升了用户体验。本文将详细探讨一个针对IAutoComplete的C++类...

    vim插件及配置文件

    此插件可能需要与`auto_complete`插件协同工作,以实现最佳效果。在`_vimrc`中启用`code_complete`,可能需要如下设置: ```vim filetype plugin on source code_complete.vim ``` 这将使得Vim在打开特定类型的文件...

    auto-complete-c-headers-源码.rar

    本文将深入探讨“auto-complete-c-headers”这一开源项目,它为C语言开发者提供了强大的头文件自动补全支持。通过分析其源码,我们可以了解其实现原理,并学习如何构建类似的工具。 1. **自动完成的基本概念** 自动...

    BBCC_CSS_GRID_complete_tutorial

    这个教程可能通过实例和交互式练习,深入浅出地讲解了以上所有概念,帮助学习者熟练掌握CSS Grid布局技术,从而在网页设计中实现更高效、更灵活的布局。如果你正在学习或者教授CSS Grid,"BBCC_CSS_GRID_complete_...

    AutoCompleteTextViewDemo

    android:id="@+id/auto_complete_text_view" android:layout_width="match_parent" android:layout_height="wrap_content" android:completionThreshold="2" /&gt; ``` 2. **数据源** AutoCompleteTextView需要...

    jquery-select-auto-complete-codes.rar_Jquery的搜索框提示

    标题 "jquery-select-auto-complete-codes.rar" 涉及的是一个使用JQuery实现的自动完成功能,特别针对搜索框的交互设计。JQuery是一个广泛使用的JavaScript库,它简化了DOM操作、事件处理、动画效果以及Ajax交互。在...

    wpf textbox search auto complete

    "wpf textbox search auto complete" 是一个常见的需求,它涉及到为TextBox添加搜索自动补全功能,以提高用户界面的交互性和效率。这个功能允许用户在输入文本时,系统能够根据已输入的部分文本,提供匹配的建议列表...

    auto complete and photo demo project

    标题中的“auto complete”指的是自动补全功能,这是一种常见的用户界面特性,常见于搜索框、输入字段等,能够根据用户输入的字符预测并提供可能的完成选项,提高输入效率。通常,这种功能是通过匹配历史记录、...

    AutoCompleteDemo

    MutiAutoCompleteTextView multiAutoCompleteTextView = findViewById(R.id.multi_auto_complete_text_view); multiAutoCompleteTextView.setAdapter(adapter); multiAutoCompleteTextView.setTokenizer(new ...

    自己写的 auto complete 效率还不错

    标题中的“自己写的 auto complete 效率还不错”表明这是一个自定义实现的自动补全功能,相较于使用jQuery的 autocomplete 插件,它在性能上有所提升,并且可能在兼容性和用户体验方面更加符合作者的需求。...

Global site tag (gtag.js) - Google Analytics