文本框的自动补全是一种可以帮助用户快速而精准地填写表单的功能,它是基于数据库的某些字段中已经存在的数据。我们以Google Suggest(http://google.com/webhp?complete=1)作为这种功能的例子。当你在搜索文本框中输入一个关键词时,Google Suggest便会为你推荐可能与你所搜寻的主题相匹配的关键词。在Rails中,提供这类功能的是auto_complete_for helper。
我们来通过为Location(地址)字段建议可能的值以强化我们的events应用程序,从而为用户节省了输入数据的时间。这将有效地减少数据库中已存在的地址输入错误的几率,而且仍允许用户输入新的地址名称。
为了实现这一效果,我们首先为events控制器添加auto_complete_for声明,如源码7-16所示。
源码7-16 在app/controllers/events_controller.rb里添加auto_complete_for helper
class EventsController < ApplicationController
before_filter :authenticate, :except => [:index, :show]
auto_complete_for :event, :location
#...
end
这段代码将告诉控制器返回数据库中存在的地址列表。
默认情况下,auto_complete_for将所返回记录的总数限制在10以内,并并搜索结果进行排序。这些通常都是合理的默认值;然而,如果你需要覆盖它们,只需将其定义在hash中,并传递给auto_complete_for,如下所示:
auto_complete_for :event, :location, :limit => 25,
rder => 'title DESC'
在模板方面,我们需要调整一下处理地址项的方式。幸运的是,这很容易做到。只需将app/views/events/_form.rhtml中的下列命令:
<p><label for="event_location">Location</label><br/>
<%= text_field 'event', 'location' %></p>
替换成源码7-17所示的命令。
源码7-17 更新app/views/events/_form以使用自动补全功能
<p><label for="event_location">Location</label><br/>
<%= text_field_with_auto_complete :event, :location %></p>
代码很少,而结果却令人相当高兴。正如你在图7-7中看到的,当你开始输入地址时,auto_complete_for helper便运行一个数据库搜索,为地址项查找存在的值,来匹配你输入的内容。如果你看到了想要输入的地址,就可以(用鼠标或键盘)选择它。如果你没看到这个地址,便可以略过这些建议的值,继续输入。
分享到:
相关推荐
在Aptana中,你可以直接在这些目录中编写相应的Ruby代码,IDE会提供代码补全和错误检查等功能。 例如,要在Rails应用中创建一个新的资源,如博客文章,你需要在models目录下创建一个名为`post.rb`的文件,定义Post...
**jQuery AutoComplete** 是一个非常流行的JavaScript库,用于在输入框中实现自动补全功能,它极大地提高了用户体验,尤其在需要用户输入关键字进行搜索或筛选的场景中。这个功能是基于jQuery框架构建的,因此可以...
bosh-zsh-自动完成Oh My Zsh(或者可能是任何 zsh 但 YMMV)插件,用于 BOSH 自动补全。 请参阅下面的已知问题以了解哪些不起作用。安装降bosh目录到您的$ZSH/custom/plugins/ (通常~/.oh-my-zsh/custom/plugins )...
2. **代码提示**:在编写代码时提供自动补全,节省输入时间,减少错误。 3. **文件关联**:自动关联Rails项目中的视图、控制器、模型等文件,方便快速切换。 4. **调试支持**:集成Rails的调试工具,如byebug,进行...
Searchkick内置了自动补全和拼写纠错功能,这有助于提升用户体验。例如,即使用户输入错误的单词,也能返回正确的搜索结果: ```ruby products = Product.search("iphon", misspellings: {below: 2}, suggest: true...
通过这个项目,你不仅学会了如何在 Rails 4 应用中集成 Elasticsearch 提供全文搜索,还掌握了如何利用 Typeahead.js 实现自动补全功能,从而提升用户体验。记得在实际开发中根据自己的需求调整配置和代码,以满足...
它提供了一个友好的环境,让开发者可以轻松创建、修改和运行Rails项目,包括代码自动完成、错误检查、调试器等功能。 2. **集成开发环境(IDE)特性**:作为一款IDE,Aptana RadRails包含了代码编辑器、项目管理、...
2. 集成开发环境(IDE)支持:RubyInstaller可以与常见的Windows IDE和文本编辑器集成,如Visual Studio Code、Sublime Text等,提供语法高亮、自动补全等功能。 3. 系统路径添加:安装完成后,Ruby命令将被添加到...
通过配置`.snippets`文件夹下的各种文件类型匹配规则,可以实现自动补全括号、引号等功能。 #### 六、高级功能 - **代码高亮**:Vim支持多种语言的代码高亮,包括haml等。 - **显示行号**:使用`:set number`命令...
这些工具通常有集成的Ruby支持,包括代码高亮、自动补全和调试功能。 总的来说,Ruby的安装过程包括下载安装包、配置环境变量、安装gemset和选择合适的开发工具。虽然提供的"ruby186-25.exe"是较旧的版本,但了解...
Localer通过扫描代码和模板文件,找出所有未被翻译的I18n键,从而帮助开发者及时发现并补全这些缺失的翻译。 使用Localer时,你需要将它集成到你的开发流程中,例如在每次代码提交或者构建之前运行。它会生成报告,...
Redmine通常会提供自动补全功能,帮助用户找到正确的用户名。一旦完成提及,被提及的用户将在问题的通知设置中看到这个问题,并可以选择接收相关的更新通知。 此插件的贡献者可能还提供了自定义选项,例如配置提及...
- 在输入部分目录名后按`Tab`键自动补全目录名。 3. **环境变量扩展**: - 示例: - `10:49:14~/vi .bashrc` - 编辑`.bashrc`文件以添加新的环境变量。 - `export PATH=$HOME/bin:$PATH` - 扩展`PATH`环境...
1. **自动补全**:为Elixir、IEX、Mix和Phoenix命令提供自动补全支持,减少手动输入,提高开发效率。 2. **别名**:创建方便快捷的别名,例如,`m` 可能代表 `mix`,`iexs` 可能代表 `iex -S mix`,使日常开发中的...
这些IDE提供代码高亮、自动补全、调试等功能,极大提升开发效率。 9. **运行和调试Ruby程序** 在IDE中,你可以直接运行和调试Ruby程序。在命令行中,使用`ruby your_script.rb`运行Ruby脚本。 10. **持续学习和...
1. **自动完成和语法高亮**:为 RubyMotion 的语法提供智能补全和颜色高亮,有助于提高代码质量和阅读性。 2. **命令行快捷方式**:创建 Vim 内部命令,用于执行常见的 RubyMotion 工具,如构建、测试和模拟器操作。...