强烈推荐一个高级查询插件Searchgasm

让你复杂的查询代码变得更加优雅:

下面是一个查询用户(User)的例子:
关系:UserGroup => User => Order (=> = has_many)
可查询条件:first_name(包含),total(Order中,大于),name(开始于)

Controller的代码

# app/controllers/users_controller.rb
class UsersController < ApplicationController
def index
@search = User.new_search(params[:search])
@users, @users_count = @search.all, @search.count
end
end

View的代码

# app/views/users/index.html.erb
<% if @users_count > 0 %>
<%= @users_count %> users found

<table border="1" cellpadding="5">
<tr>
<th><%= order_by_link :id %></th>
<th><%= order_by_link :user_group => :name %></th>
<th><%= order_by_link :first_name %></th>
<th><%= order_by_link :last_name %></th>
<th><%= order_by_link [:email, :first_name] %></th>
</tr>
<% @users.each do |user| %>
<tr>
<td><%= user.id %></td>
<td><%= user.user_group ? user.user_group.name : "-" %></td>
<td><%= user.first_name %></td>
<td><%= user.last_name %></td>
<td><%= user.email %></td>
</tr>
<% end %>
</table>

<br />
<br />

Per page: <%= per_page_select %>

<% if @search.page_count > 1 %>
<br />Page: <%= page_select %>
<% end %>
<% else %>
No users were returned
<% end %>


# app/views/users/index.html.erb
<% form_for @search do |f| %>
<fieldset>
<legend>Search Users</legend>

<% f.fields_for @search.conditions do |users| %>
First name keywords:<br />
<%= users.text_field :first_name_keywords %><br />
<br />

<% users.fields_for users.object.orders do |orders| %>
Has orders with a total greater than:<br />
$<%= orders.text_field :total_gt %><br />
<br />
<% end %>

<% users.fields_for users.object.user_group do |user_group| %>
Belongs to user group with name that starts with:<br />
<%= user_group.text_field :name_starts_with %><br />
<br />
<% end %>
<% end %>
</fieldset>
<%= f.submit "Search" %>
<% end %>


看见没,controller里面的代码相当简洁,在view里面定义查询条件时,还可以使用后缀:
_keywords表示contains(顺便说一下_keywords是contains的扩展,一个真正的关键字搜索。它过滤一些无意义的词语,如“and”,“the”等。),
_gt表示大于,
_starts_with表示以某某开头。。。。
太方便了,还自带翻页,可选AJAX。。。。。
大家自己看吧
DEMO:[url]http://searchgasm_example.binarylogic.com/rails_ajax/users[/url]
更多介绍:[url=http://www.binarylogic.com/2008/9/7/tutorial-pagination-ordering-and-searching-with-searchgasm]Tutorial: Pagination, ordering, and searching with Searchgasm[/url]
插件下载:[url]http://github.com/binarylogic/searchgasm/tree/master[/url]
原创Eclipse插件: 高级搜索功能 - com.realzyc.search.jar Eclipse Plugin 插件 java 全局 搜索 + 特性: 相比与原有eclipse仅支持的在当前文档的搜索功能, 本插件支持了如下的搜索范围: - 当前文档 原有 查找/替换 已支持 - 当前选中 原有 查找/替换 已支持 - 所有打开的文档 原有 查找/替换 不支持 - 当前项目 原有 查找/替换 不支持 - 所有打开的项目 原有 查找/替换 不支持 - 整个工作空间 原有 查找/替换 不支持 仅以在“整个工作空间”搜索为例, 插件提供在整个工作空间(workspace)中的全部文档的搜索.即使项目在关闭状态, 也可以获得搜索结果. + 特性: 本搜索插件提供了“搜索全部”功能, 并将结果全部在列表中显示.用户可以全局通观搜索结果, 并任意的导航的希望的结果.(而不是像原有的功能一样逐一的导航到结果). + 其他: 插件还提供: 字体支持, 中英语言界面切换, 搜索摘要显示等特性. + 本发布包中含有的文件: com.realzyc.search_1.3.5.jar 插件最小执行文档, 不含源文件/javadoc com.realzyc.search.introduction.en.pdf 插件介绍文档, 英文 com.realzyc.search.introduction.cn.pdf 插件介绍文档, 中文 readme.txt 插件介绍摘要 + 声明: 本插件由RealZYC独立开发, 仅用于个人使用. 如果有爱好这方面插件的同志们, 请回复或发邮件联系, 也欢迎大家加入编程Q群(78728985)互相切磋 欢迎大家下载评论.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值