看到一个很不错的插件ez_where,便用它做了个例子,贴出来与大家分享一下:
首先,新建一个项目:ez_where
D:\>rails ez_where
D:\rubyonrails>cd ez_where
其次,执行如下命令,生成rest 形式的脚手架
D:\rubyonrails\ez_where>ruby script/generate scaffold_resource user login:string
firstname:string lastname:string
exists app/models/
exists app/controllers/
exists app/helpers/
create app/views/users
exists app/views/layouts/
exists test/functional/
exists test/unit/
create app/views/users/index.rhtml
create app/views/users/show.rhtml
create app/views/users/new.rhtml
create app/views/users/edit.rhtml
create app/views/layouts/users.rhtml
create public/stylesheets/scaffold.css
create app/models/user.rb
create app/controllers/users_controller.rb
create test/functional/users_controller_test.rb
create app/helpers/users_helper.rb
create test/unit/user_test.rb
create test/fixtures/users.yml
create db/migrate
create db/migrate/001_create_users.rb
route map.resources :users
第三,执行数据迁移
D:\rubyonrails\ez_where>rake db:migrate
下面我们来使用一下ez_where
1.把ez_where 插件从svn://rubyforge.org//var/svn/ez-where下载下来放到...\vendor\plugins目录下
2.执行ruby script/generate controller Search
3.search_contrallor代码如下:
class SearchController < ApplicationController
def index
users
end
def users
if params[:q].blank?
@query = ''
@users = []
else
@query = params[:q].strip
@users = users_matching_query(@query)
end
bump_total(@users.size)
end
private
def bump_total(by)
@total = by + (@total ? @total : 0)
end
def users_matching_query(query)
words = query.split(/\s+/)
User.ez_find(:all) do |user|
user.any do
words.each do |word|
login.nocase =~ "%#{word}%"
end
end
end
end
end
4. application.rhtml 代码:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=UTF-8" />
<title>Users: <%= controller.action_name %></title>
<%= stylesheet_link_tag 'scaffold' %>
<%= javascript_include_tag :defaults%>
</head>
<body>
<form action="/search">
<label for="search_query">Search</label>
<%= text_field_tag 'q', "Search", {:id=>"search_query",:defaultValue=>"Search",:onfocus=>'clearText(this)', :style=>'color:#ccc;', :onblur=>'refill(this)'} %>
<%= button_submit_tag "Go"%>
</form>
<p style="color: green"><%= flash[:notice] %></p>
<%= yield %>
</body>
</html>
当然,里面用到的button_submit_tag是另外一个插件:real_buttons里面的,在此不做介绍。
5. search下面的 index.rhtml 代码:
Results for "<%=@query%>" (<%= @total %>)
<% if @users and @users.size > 0 -%>
<ul>
<%= render :partial => 'user_list_item', :collection => @users%>
</ul>
<% end -%>
user_list_item.rhtml代码:
<li>
<h3 id="user_name"><%=link_to h(user_list_item.login), user_url(user_list_item) %></h3>
<dl>
<dt>First name:</dt><dd class="about_me"><%=h user_list_item.firstname %></dd>
<dt>Last name:</dt><dd><%=h user_list_item.lastname %></dd>
</dl>
</li>
6.最后在路由信息中加入: map.connect '/search/:action', :controller => 'search'
启动服务,看看效果。
分享到:
相关推荐
- **方法**:使用Active Record的方法来进行数据库查询,如`find`、`where`、`joins`等。 - **优化**:为了提高查询效率,可以使用预加载(`includes`)和延迟加载(`references`)等技术减少数据库交互次数。 #### 五...
为了在Rails中使用Oracle,你需要安装特定的Rails插件或 gems,如`activerecord-oracle_enhanced-adapter`,以提供Oracle数据库的支持。 Rails的ActiveRecord组件是其ORM(对象关系映射)层,负责处理数据库操作。...
9. **Rails的社区和生态**:Rails有一个庞大的开发者社区,提供了丰富的插件、gem(Ruby的包管理器)以及详尽的文档,如Rails Guides和Stack Overflow等资源,有助于开发者解决问题和提升技能。 10. **最佳实践**:...
SmartAdmin布局API可让您为几乎任何设备(无论是移动设备,Web还是Web应用程序)自定义您的项目 - 您可以使用SmartAdmin! 包含: AJAX Angular_5 AngularJS_1.x_legacy ASP.NET_Core2 ASP.NetMVC5 Email_Templates...
在Ruby on Rails框架中,开发API时通常会使用如Devise这样的身份验证库来处理用户认证。然而,有时我们可能需要自己实现API密钥的管理,以满足特定的需求或者避免引入额外的依赖。本教程将深入讲解如何在不使用...
标题中的“aprenda-rubyonrails”是一个与学习Ruby on Rails相关的项目或者课程,主要针对巴西地区的用户。Ruby on Rails(简称Rails)是一个基于Ruby编程语言的开源Web应用程序框架,它遵循MVC(模型-视图-控制器)...
3. **模块化**:`dry_crud`是模块化的,这意味着你可以只选择你需要的部分来使用,而不是一次性引入所有功能。例如,如果你只需要处理创建和更新操作,可以只包含这些部分,从而保持应用的轻量化。 4. **助手类**:...
您可能要讲的内容: Ruby版本系统依赖配置数据库创建数据库初始化如何运行测试套件服务(作业队列,缓存服务器,搜索引擎等) 部署说明… 如果您不打算运行rake doc:app请随意使用其他标记语言。
标题"Learning-RubyOnRails:这包含了我为这门课程所做的所有工作。 酷的东西"表明你正在或已经完成了一个关于Ruby on Rails的学习项目,可能包括练习、代码示例和项目成果。这通常意味着你深入学习了Rails的各个方面...
标题 "Portfolio-rubyonrails" 暗示这是一个使用Ruby on Rails框架开发的个人投资组合网站项目。Ruby on Rails(RoR)是一个基于Ruby语言的开源Web应用框架,它遵循模型-视图-控制器(MVC)架构模式,用于简化Web...
自述 此自述文件通常会记录启动和运行应用程序所需的任何步骤。 您可能想要涵盖的内容: Ruby版 系统依赖 配置 数据库创建 数据库初始化 ... 如果您不打算运行rake doc:app请随意使用不同的标记语言。
使用12岁的Git在9岁的GitHub上发布了16岁的问题 一个没有贡献图的人。 名称无限期垂直延伸的人类。 第二个吸引人的特点是 :party_popper: 有趣的事实 :party_popper: 。 这满足了人们窥视其他用户所完
完成开发后,Milog需要部署到服务器上,可能使用Heroku、AWS或其他云服务。部署过程涉及配置环境变量、数据库迁移和启动Web服务器。 **总结** "Milog"是一个利用Ruby on Rails框架开发的个人博客平台,它结合了Ruby...
这个“享受将SQL注入RubyonRails应用程序的乐趣吧!”资源可能是一个教程或者实战演练,旨在帮助开发者了解这种攻击方式,以便更好地防御和预防。下面我们将深入探讨SQL注入的概念、如何在RoR中发生以及如何防止它。...
在您的功能和集成测试中使用js方法在视图的上下文(最后一个响应正文)中执行 javascript。 js返回最后一个 javascript 语句的值,转换为等效的 ruby 对象。 class PeopleControllerTest < ActionController:...
它提供了 token-based 的认证方案,适用于无状态API,因为API通常不使用session来存储用户信息。devise_token_auth 提供了注册、登录、密码重置等功能,同时处理了token的生成、验证和过期。 1. **devise_token_...
这个Ruby on Rails的“ RoR”应用程序使组织中的人们可以使用“竖起大拇指”的方法给出反馈并对其进行排名。 使用的语言,框架: Ruby 2.6.6 Ruby on Rails 5.2.2 SQLite3 jQuery JavaScript库3.3.1 用于样式...
・ RubyOnRails(5.2.3) ・苗条/ CSS ・ jQuery ・ Javascript ・ Psql(PostgreSQL)11.4 ・ RSpec ・数据库生产→PostgreSQL -部署heroku :black_medium-small_square:屏幕 主屏幕 我的页面 任务列表 追踪清单 ...
这是Capstone项目,它标志着Microverse课程中RubyOnRails模块的完成。 它是一个网络应用程序,用户可以在其中注册和创建内容。 作为登录用户,可以创建文章并对文章进行投票。 该应用程序还可以在只读模式下使用,对...
自述文件 该自述文件通常会记录启动和运行应用程序所需的所有步骤。 您可能要讲的内容: Ruby版本 系统依赖 组态 数据库创建 数据库初始化 如何运行测试套件 服务(作业队列,缓存服务器,搜索引擎等) ...