RailsWhere可以让代码变得更简洁。
看一下插件的自述文件。
=== Returning SQL
sql = Where.new('x=?',5).and( Where.new('x=?',6).or('x=?',7)).to_s
# returns (x=5) and ( (x=6) or (x=7) )
=== Building a complicated where clause made easy
def get_search_query_string
where = Where.new
where.and('users.first_name like ?', params[:search_first_name] + '%') unless params[:search_first_name].blank?
where.and('users.last_name like ?', params[:search_last_name] + '%') unless params[:search_last_name].blank?
status_where = Where.new
for status in params[search_statuses].split(',')
status_where.or 'status=?', status
end
where.and status_where unless status_where.blank?
where.to_s
end
User.find(:all, :conditions => get_search_query_string)
=== Inline
User.find(:all, :conditions => Where.new('first_name like ?', 'Tim').and('last_name like ?', 'Harper'))
Rails2.2.2下可以直接运行,Rails2.3.4的话,需要进行小小的改动:
# RAILS_ROOT/vendor/railswhere/lib/where.rb
# 2.2.2
@criteria = ActiveRecord::Base.send(:sanitize_sql_array, criteria)
# 2.3.4
@criteria = ActiveRecord::Base.send(:sanitize_sql_array, criteria, nil)
分享到:
相关推荐
而 Elasticsearch将 Lucene 作为其核心来实现所有索引和搜索的功能,通过简单的 RESTful 语法来隐藏掉 Lucene 的复杂性,从而让全文搜索变得简单 ES在Lucene基础上,提供了一些分布式的实现:集群,分片,复制等。 ...
这套源码融合了最新技术,让搭建一个专业级别的网站变得轻而易举,适合从个人品牌推广到企业级项目展示的各种需求。 它的设计理念不仅注重视觉美感,还兼顾了操作便捷性,让非技术背景的用户也能轻松管理和更新网站...
这套源码融合了最新技术,让搭建一个专业级别的网站变得轻而易举,适合从个人品牌推广到企业级项目展示的各种需求。 它的设计理念不仅注重视觉美感,还兼顾了操作便捷性,让非技术背景的用户也能轻松管理和更新网站...
面对大学生朋友们的课程设计和毕业设计挑战,我们精心准备了一份Web前端大作业——一套...选择我们的响应式网站HTML源码文件,让您的项目搭建变得轻松而高效。立即行动,让您的学术旅程更加顺畅,一起迈向成功的彼岸!
EasyFast PHP是一个框架,它使用简单而优雅的语法使PHP编程变得轻松快捷。 EasyFast PHP致力于消除使用面向对象的所有麻烦。 在与ORM(对象关系映射)一起使用的简单但健壮的界面的背后,您会发现一个令人难以置信...
并发(英文Concurrency),其实是一个很泛的概念,字面意思就是...不过在.NET 4.5 及以上框架中引入的async/await关键字(在.NET 4.0中通过添加Microsoft.Bcl.Async包也可以使用),让编写异步代码变得容易和优雅。通
是一个全面的抽象,它将所有麻烦的行为推到一个干净的界面后面,并在底层堆栈变得太不稳定以至于无法处理时优雅地降级。 它建立在几个商业 BLE 项目来之不易的经验的基础上,并提供了许多透明的解决方法来解决烦人和...
与Pacer相比,Fermor的重量更轻,更灵活,更简单且速度更快,尽管Pacer(截至几年前)本身通常比我所见过的其他图形遍历机制快得多。 与遍历库捆绑在一起的是(目前)非常初级(但仍然有用)的快速不可变的内存中有...
CI 有很多优点:免费,轻量级,容易安装,它能使你的编程生涯变得很轻松。 这一章我们会告诉你: CI 能为你做什么? 什么是“框架”?CI 为什么能被称为框架? “开源”商业模式。 CI 的某些不足(是的,它并不...
这些模式解决特定的设计问题,使面向对象设计更灵活、优雅,最终复用性更 好。它们帮助设计者将新的设计建立在以往工作的基础上,复用以往成功的设计方案。 一个熟悉这些模式的设计者不需要再去发现它们,而能够...
先让网站能够正常工作于尽可能旧的浏览器上,然后不断为它在新型浏览器上实现更多的增强和改进。 Viewport 移动设备上的Viewport就是设备的屏幕上能用来显示网页的一块区域,即浏览器上用来显示网页的那部分区域。...
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....
GWT Spring 使得在 Spring 框架下构造 GWT 应用变得很简单,提供一个易于理解的依赖注入和RPC机制。 Java扫雷游戏 JVMine JVMine用Applets开发的扫雷游戏,可在线玩。 public class JVMine extends java.applet....