我正在寻找一种最简单的方法来实现Rails应用程序中文本输入字段的"建议"功能.我们的想法是完成存储在数据库列中的名称,为用户提供可用匹配项的下拉菜单.
谢谢你的任何建议!
使用该text_field_with_auto_complete
方法,Rails使文本字段上的"建议"式自动完成变得非常容易.
在Rails 1.x中,这个方法已内置ActionView::Helpers::JavaScriptMacrosHelper
,但对于Rails 2.x,它被移动到一个单独的插件中.
假设你有一个叫做Post
文本字段的模型title
.在您的视图中,您通常使用text_field_tag
(或f.text_field
),只需使用text_field_with_auto_complete
:
<%= text_field_with_auto_complete :post, :title %>
此外,PostsController
您必须做出相应的声明:
class PostsController < ApplicationController auto_complete_for :post, :title end
这背后的动态是动态添加一个调用auto_complete_for_[object]_[method]
到控制器的动作.在上面的示例中,将调用此操作auto_complete_for_post_title
.
值得指出的是,find
此自动生成的操作所使用的调用将在所有模型对象中起作用,例如Post.find(:all, ...)
.如果这不是您想要的行为(例如,如果要Post
根据登录用户将搜索限制为特定的s 子集),则必须auto_complete_for_[object]_[method]
在控制器中定义自己的操作.
Ruby on Rails具有Prototype框架.Script.aculo.us使用此框架,它提供了一个自动完成控件,可以提供您正在寻找的功能.