首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在Rails应用中,你会使用什么来实现自动补全?

在Rails应用中,你会使用什么来实现自动补全?
EN

Stack Overflow用户
提问于 2010-05-02 18:43:11
回答 2查看 601关注 0票数 2

我想在我的表单中的许多字段(5-7)中使用自动完成。Ryan Bates ( http://railscasts.com/episodes/102-auto-complete-association)有一个关于Prototype库自动补全的截屏视频。另一方面,我注意到有相当多的人建议使用jQuery来完成这项任务( http://jquery.bassistance.de/autocomplete/demo/)。我猜,去年可能有一些发展,所以我问你-现在你会用什么来自动完成你的表单域?为什么?

顺便说一句,我还有一个关于HABTM协会的自动补全的未决问题:How to do HABTM management with auto completion in Rails?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-05-02 21:12:24

免责声明:这个答案只涵盖了问题的jQuery部分,因为我没有原型自动完成插件的经验,我将把这个问题留给有专业知识的人来回答。

首先,我会坚持使用你已经在使用的框架中编写的插件,不需要从prototype切换到jquery,反之亦然。

如果您尚未使用框架或正在使用jQuery,我建议使用jQuery UI autocomplete (与您所链接的不同),主要围绕它提供的支持和可扩展性。

不管你在看哪个框架,一旦一个插件形成或者被拉入任何核心库(这里是jQuery UI),它就会得到更多的支持,社区也更容易在它的基础上构建,使它变得更好,更具扩展性。此外,如果你遇到麻烦,你更有可能找到问题的答案。

对于rails部分,弹出了一些文章,介绍如何将这个自动完成插件专门用于rails,即I'd get started here

票数 1
EN

Stack Overflow用户

发布于 2010-05-03 03:06:11

我使用YUI auto-complete。工业实力,用于Yahoo、Flickr和其他A级网站。

Performance

在Rails中,为了在自动完成上获得最佳性能(无论您使用哪个小部件),您都应该在数据库中创建一个视图来查看您的查找信息。例如,你想使用自动完成功能,让用户可以通过标题(而不是内容)来快速搜索他的帖子。

创建视图:

代码语言:javascript
运行
复制
# Rake task code for creating a view
def self.search_posts # 
  execute "DROP Table IF EXISTS search_posts"
  execute "DROP View IF EXISTS search_posts"
  execute "CREATE View search_posts AS
  SELECT
     p.id
  ,  p.title
  ,  p.user_id
  FROM posts p
  ORDER BY p.title
  "    
end

还要为SearchPost创建一个ActiveRecord模型。它将从视图中拉出。

然后,在您的控制器中:

代码语言:javascript
运行
复制
# Return the id's and title's matching the search query
# Assumptions: current user id is in Session[:user_id]
#              Auto complete query is in params[:query]
SearchPost.find_all(
  :conditions => ["user_id = ? and title LIKE ?",
                  Session[:user_id], "%#{params[:query]}%"]
  ).collect{|rec| {'title' => rec.title, 'id' => rec.id}.to_json

Benefit

对于自动完成小部件发送给您的Ajax请求,您希望最小化通过db查找的数据量。

本地自动完成

Flickr使用的另一种自动补全架构是:将整个帖子标题和ids数据库下载到浏览器,并在本地进行搜索。请参阅http://code.flickr.com/blog/2009/03/18/building-fast-client-side-searches/

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/2753178

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档