gpt4 book ai didi

jquery - 您会在 Rails 应用程序中使用什么来自动完成?

转载 作者:行者123 更新时间:2023-12-01 03:55:59 25 4
gpt4 key购买 nike

我想在表单中的多个字段 (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?

最佳答案

我使用YUI auto-complete 。工业强度,用于 Yahoo、Flickr 和其他 A 级网络 Assets 。

性能

在 Rails 中,为了获得自动完成的最佳性能(无论您使用哪个小部件),您应该在数据库中创建一个用于查找信息的 View 。例如,您希望使用自动完成功能使人们能够按标题(而不是内容)快速搜索他的帖子。

创建 View :

# 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 模型。它将从 View 中拉出。

然后,在您的 Controller 中:

# 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

好处

您希望最大限度地减少通过数据库查找自动完成小部件发送给您的 Ajax 请求的数据量。

本地自动完成

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

关于jquery - 您会在 Rails 应用程序中使用什么来自动完成?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2753178/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com