`
jsntghf
  • 浏览: 2532652 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

让查询变得更优雅

阅读更多

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)
 
分享到:
评论

相关推荐

    写出优雅代码(C#)篇

    C#提供了集合初始器,使得创建和初始化集合对象变得更加简洁。例如,使用花括号{}可以直接初始化列表和结构体,如示例中的`List<int>`和`Point`结构。这样的写法使得代码更易读,减少了冗余的赋值操作,提高了代码的...

    LaravelPHPFramework更简洁优雅的PHPWeb开发框架

    Laravel,作为一个领先的PHP开发框架,以其优雅的设计理念和强大的功能集,为开发者提供了高效且富有表现力的工具,使得构建高质量的Web应用程序变得更加简单。这个框架的出现,极大地提升了PHP在Web开发领域的地位...

    piteration使用asyncawait或promises使数组迭代变得很简便

    `p-iteration`库为这种情况提供了一个优雅的解决方案,它使得使用`async/await`或`Promise`进行数组迭代变得极其简便。本文将深入探讨`p-iteration`库及其如何与`async/await`和`Promise`结合使用,以提高代码的...

    winForm 查询控件

    C#是开发WinForm应用的主要编程语言,它提供了丰富的类库和语法支持,使得创建这样的查询控件变得简单。开发者可以利用控件事件,如Click或TextChanged,来响应用户的操作,并结合ADO.NET(.NET的数据访问组件)执行...

    易语言简单域名注册查询

    易语言是一种专为中国人设计的编程语言,它的目标是让编程变得简单、直观。这个“易语言简单域名注册查询”项目提供了一套源代码,帮助初学者或开发者快速理解如何利用编程来实现域名注册查询的功能。 在编程领域,...

    Toucan一个优雅的高级Clojure库用于定义应用程序模型并从DB中检索它们

    Toucan库在这一基础上,为开发者提供了更加便捷的接口,使得数据库操作变得更加自然和简洁。 ### 2. 模型定义 在Toucan中,你可以通过简单的语法定义应用程序的数据模型。这些模型不仅包含了表结构的定义,还包含...

    Ruby-QoQueryObject模式匹配和fluent的Ruby查询

    Ruby 2.7及更高版本引入了模式匹配语法,使得解构复杂数据结构变得更加简单。例如: ```ruby [post, comments] = query.execute # 或者 case query.execute when [post, *comments] # 处理post和comments数组 end ...

    springboot优雅的后端接口

    在开发Web应用时,SpringBoot框架因其简洁的配置和快速...同时,利用Swagger增强API的可发现性和文档化,使得接口的使用和维护变得更加简单。在实际开发中,理解并掌握这些技术将有助于提升后端服务的质量和用户体验。

    C# winform的demo使用fulentdata执行百万插入查询分页

    `FluentData`通过提供一种链式编程的风格,使得SQL查询变得非常直观。安装`FluentData`可以通过NuGet包管理器进行,命令为:`Install-Package FluentData`。安装完成后,我们可以创建一个`DataContext`实例,它是与...

    语言集成查询LINQ

    LINQ支持不同数据源之间的连接操作,使得从多个数据集中提取所需信息变得更加简便。 #### 四、总结 LINQ通过其简洁而强大的语法为.NET开发者提供了一种全新的数据查询方式。它不仅提高了代码的可读性和可维护性,...

    十分钟学会使用 Elasticsearch 优雅搭建自己的搜索系统.pdf

    而 Elasticsearch将 Lucene 作为其核心来实现所有索引和搜索的功能,通过简单的 RESTful 语法来隐藏掉 Lucene 的复杂性,从而让全文搜索变得简单 ES在Lucene基础上,提供了一些分布式的实现:集群,分片,复制等。 ...

    Python实现期末成绩自动查询.zip

    在本项目"Python实现期末...通过以上知识点的应用,我们可以构建一个高效、可靠的期末成绩自动查询系统,使成绩查询变得更加便捷。无论是在学校还是其他教育机构,这样的系统都能够提高工作效率,节省大量的人力资源。

    成绩查询系统

    C++的iostream库提供了标准输入输出流,使得与用户的交互变得更加便捷。 5. 错误处理:在实际应用中,系统需要处理各种可能出现的异常情况,如无效的输入、文件读取错误等。C++的异常处理机制可以用来优雅地捕获和...

    C++函数查询

    《C++函数查询》 C++是一门强大的编程语言,其丰富的函数库为开发者提供了极大的便利。本资源“C++函数查询”旨在帮助程序员快速、有效地查找和理解C++中的函数、...请充分利用这个工具,让编程变得更加得心应手。

    Java_mybatisflex是一个优雅的Mybatis增强框架.zip

    例如,它可以支持动态SQL的内联写法,使得在Java代码中直接构建SQL变得更加直观。此外,它还提供了注解方式来定义Mapper接口,进一步降低了XML配置的需求。 其次,Java_mybatisflex引入了更强大的事务管理机制。...

    Go-ThinkORM一个优雅的Go语言ORM框架

    Go-ThinkORM是一个专为Go语言设计的ORM(对象关系映射)框架,它使得在Golang中操作数据库变得更加简洁和高效。ORM框架是软件开发中的一个重要工具,它允许开发者使用面向对象的方式来处理数据库操作,避免了直接...

    knexjs一个数据库SQL查询构建器

    2. **链式API**:knex.js 提供了一套流畅的链式API,使得构建复杂的查询变得简单直观。例如,你可以轻松地创建表、插入记录、更新数据、删除条目,并进行连接查询。 3. **事务管理**:knex.js 支持事务,可以处理多...

    火车票实时查询

    它拥有强大的类型检查、垃圾回收机制、异常处理和面向组件编程等特点,使得开发高效稳定的软件变得更加便捷。 在实现12306火车票实时查询功能时,我们需要关注以下几个关键知识点: 1. **网络请求**:C#中可以使用...

    易语言源码易语言QQ资料查询源码.rar

    易语言是一种专为中国人设计的编程语言,它的目标是让编程变得简单易学,因此得名“易语言”。本压缩包“易语言源码易语言QQ资料查询源码.rar”包含了一个使用易语言编写的程序,该程序用于查询QQ用户的个人资料。...

Global site tag (gtag.js) - Google Analytics