Gmail中你输入收信人地址时会自动搜索并提示,速度很快,因为Gmail不是每次都从后台搜索,而是一开始就
把地址加载到页面中,然后在页面中匹配并搜索。让我们看看怎样在Rails里实现它。
1,准备搜索数据
我们创建app/controllers/book_controller.rb:
class BookController < ApplicationController
def authors_for_lookup
@authors = Author.find(:all)
@headers['content-type'] = 'text/javascript'
render :layout => false
end
end
这里我们设置headers的content-type为text/javascriipt。
2,封装JavaScript数据
我们创建返回的页面app/views/book/authors_for_lookup.rhtml:
var authors = new Array(<%= @authors.size%>);
<% @authors.each_with_index do |author, index|%>
authors[<%= index %>] = "<%= author.name %>";
<% end %>
我们在该rhtml中直接写javascript代码,并用Ruby代码动态取得和填充authors数据
3,写搜索页面
如app/views/book/search_page.rhtml:
<html>
<head>
<%= javascript_include_tag :defaults %>
<script src="/book/authors_for_lookup" type="text/javascript"></script>
<style>
div.auto_complete {
width: 350px;
background: #fff;
}
div.auto_complete ul {
border: 1px solid #888;
margin: 0;
padding: 0;
width: 100%;
list-style-type: none;
}
div.auto_complete ul li.selected {
background-color: #ffb;
}
div.auto_complete ul strong.highlight {
color: #800;
margin: 0;
padding: 0;
}
</style>
</head>
<body>
<label for="author_lookup">Author Search</label>
<input type="text" id="author_lookup" name="author_lookup" />
<div class="auto_complete" id="author_lookup_auto_complete">
</div>
<%= javascript_tag("new Autocompleter.Local('author_lookup',
'author_lookup_auto_complete',
authors,
{fullSearch: true,
frequency: 0,
minChars: 1,
}
);") %>
</body>
</html>
Autocompleter.Local在本地(当前页面中)取数据,让我们访问
http://localhost:3000/book/search_page看看效果,很不错哦!
分享到:
相关推荐
rails-javascript-integrations, JavaScript重 Rails 应用的渐进集成策略 Rails JavaScript集成策略注意:这比最后一个提交日期更新更新,因为大多数有趣的工作不在 master 分支上。为什么?模块化视图使用户界面的...
结合这两个技术,"rails-and-lightning-design-system"项目可能是一个示例或者模板,展示了如何在Rails应用中集成并使用Lightning Design System的组件和样式。这可能包括如何在Rails的视图层引用Lightning的CSS和...
rails-hackernews-reddit-producthunt-clone, 黑客 news/reddit/social 链接分享网站 用 Rails 构建 Rails 上的 Reddit-Hackernews-ProductHunt克隆演示 这是一个 readme.md的Ruby on Rails 应用程序,模仿了 Hacker...
gem 'rails-i18n-js', :git => 'https://github.com/jodosha/rails-i18n-js.git' # shell rails g i18n_js 用法 此宝石正在开发中,这些步骤可能会更改 # in your views <%= javascript_include_tag "locale...
rails3-mongoid-devise, 示例 Rails 3.2应用,带有数据 Mongoid,用于验证 Rails 4.1有关设计的Rails 4.1示例应用程序,请参见:rails设计有一个用于设计的教程:Rails 设计教程。类似示例和教程这是来自 RailsApps...
《Agile Web Development with Rails-Second Edition-Beta》是一本专注于使用Ruby on Rails框架进行敏捷Web开发的书籍。这本书的实例部分提供了丰富的代码示例,帮助读者深入理解Rails的架构和开发流程。在本压缩包...
rails-documentation-2-0-2
`rails-documentation-2-0-2.chm` 文件详细涵盖了这些概念,包含了关于Rails 2.0.2的API参考、教程和指南。通过仔细阅读和实践,开发者能够深入理解Rails的工作原理,并有效地开发出高效、可维护的Web应用。
Rails 3.1 和 Cucumber-Rails 1.2.0 是两个在Web开发领域非常重要的工具,尤其对于Ruby on Rails框架的测试和自动化流程。本文将深入探讨这两个组件,以及它们如何协同工作来增强软件开发的效率和质量。 首先,...
Flexigrid 是一个 JavaScript 库,常用于创建可扩展、灵活的表格,而 Ruby on Rails 是一个流行的开源 Web 应用程序框架,遵循 MVC(模型-视图-控制器)架构模式。下面将详细解释这两个技术以及它们在实际应用中的...
rails-beginner-s-guide是Rails 指导手册,帮组学习了解rails开发
本文将深入探讨"rails-react-components-源码.rar"中的关键知识点,帮助开发者理解如何在Rails应用中集成React组件。 1. **React组件化开发** React的核心概念是组件,它允许我们将UI拆分为独立、可重用的部分。在...
rails-documentation-1-2-0-rc1.chm
rails-dev-box, 面向 Ruby on Rails 核心开发的虚拟机 用于 Ruby on Rails 核心开发的虚拟机简介注意:这个虚拟机不是为 Rails 应用程序开发而设计的,只是为。 这个项目自动设置开发环境,以便在 Ruby on Rails ...
upmin-admin 是一个为 Rails 应用开发的开源管理框架。用来管理 Rails 应用中各种对象(如 Model、View 和 Controller )。 标签:upmin
标题 "rails-documentation-1-2-1.zip" 暗示这是一份关于 Ruby on Rails 框架的文档,版本为 1.2.1。Ruby 是一种面向对象的编程语言,而 Rails 是一个基于 Ruby 的开源 Web 应用程序框架,遵循 Model-View-...
官方离线安装包,测试可用。使用rpm -ivh [rpm完整包名] 进行安装