http://code.google.com/p/rquerypad/
目前支持rails 2.0, rails 1.2(部分2.0 方式的查询))(谢谢Quake的测试及建议)
Simplify query options with association automation and improve inner join for activerecord of rails
字段名包含关联信息,不需额外再写include或者joins
原来activerecord仅支持inner join在最后,现在没有这个限制
不想用svn,直接下载可以到
https://rubyforge.org/projects/rquerypad/
Feature
=======
1. single name string decribe associations
2. support to mix inner join and outer join with any order
3. auto remove duplicated joins from other association in different depth
4. support :conditions,
rder, :group
5. auto merge to original :include, :joins
Install
=======
ruby script/plugin install http://rquerypad.googlecode.com/svn/trunk/rquerypad
Example
=======
suppose the asscociations of User <-> Thread <-> Reply is 1:N:N
@users = User.find(:all, :group => ["threads.created_at", "name"])
generate:
[:all, {:group=>"threads.created_at, users.name", :include=>[:threads]}]
@users = User.find(:all, :conditions => ["threads_.replies.title = ?",
"rquerypad"])
generate:
[:all, {:inner_joins=>["threads"], :conditions=>["replies.title = ?", "rquerypad"], :include=>[{:threads=>:replies}]}]
#note: the :inner_joints is processed by rquerypad before sending sql to database
@users = User.find(:all, :conditions => ["threads.replies.title = ? and threads.id = ?", "rquerypad", 1])
generate:
[:all, {:conditions=>["replies.title = ? and threads.id = ?", "rquerypad", 1], :include=>[{:threads=>:replies}]}]
#note: single "threads" was removed from includes
Setup
=======
#to set debug model, in rails initialized script
$RQUERYPAD_DEBUG = true
#to support rails 1.2.6, in rails initialized script, such as environment.rb
#default support rails 2.0
$RQUERYPAD_RAILS = "1.2"
Test
=======
Note: current migrate script works only in rails 2.0
1.Prepare
the test depends on sqlite3 database, the following code should be add into your database.yml and place rquerypad.rb(copy from test.rb) in config/environment
rquerypad:
adapter: sqlite3
database: vendor/plugins/rquerypad/test/db.rquerypad
timeout: 5000
2.database migrate
execute the following script
rake migrate
3.start test
execute the following script
rake
分享到:
相关推荐
SVN关联vs插件SVN关联vs插件SVN关联vs插件SVN关联vs插件SVN关联vs插件SVN关联vs插件SVN关联vs插件
Mybatis 是一个流行的Java持久层框架,它简化了数据库操作,允许开发者将SQL语句直接写在XML映射文件中,提供了动态SQL的功能。在Eclipse这样的集成开发环境中,为了提高开发效率,我们可以配置Mybatis的插件,使得...
标题提到的"Cass命令简化程序"是针对CASS软件的一个插件,旨在提升用户在操作CASS时的效率,通过集合多个常用命令,使得用户能够更快速、便捷地完成工作。 该插件的核心特点是其包含的多个命令,这些命令主要分为...
问题在于,当你在使用MybatisPlus进行分页查询时,如果未正确配置PaginationInterceptor,分页参数将无法生效,你会观察到所有的数据都被查询出来。要解决这个问题,你需要在你的项目配置中添加...
标题“CODEVBA插件简化开发”揭示了一个重要的工具,即CODEVBA,它是一个专门针对VBA(Visual Basic for Applications)编程环境设计的插件,旨在简化开发过程,提高程序员的工作效率。VBA是Microsoft Office套件中...
查询 vlx、fas、arx、lsp、dbx、dvb、crx 格式插件的命令
在IT行业中,Bootstrap是一款非常流行...总之,Twitter Bootstrap模糊查询插件是构建现代Web应用时增强搜索功能的有效工具,通过简单的API和丰富的定制选项,能够帮助开发者快速实现智能搜索功能,提升用户的交互体验。
【标题】"百科查询插件QQ机器人"是一个用于QQ聊天平台的智能化插件,它集成了百度百科的功能,使得用户可以方便地在QQ聊天环境中快速查询各类知识。 【描述】"百度百科一键查询!"表明该插件的核心功能是简化用户...
在处理多表join查询时,传统的关系型数据库如MySQL等通常能很好地应对,但Solr作为一个非关系型的搜索引擎,其原生功能并不支持复杂的数据关联操作。本文将围绕"基于Solr的多表join查询加速方法"这一主题,深入探讨...
在实际开发中,PageHelper的使用大大简化了分页查询的实现,避免了手动处理分页逻辑的繁琐,提高了代码的可读性和维护性。通过合理配置和使用PageHelper,可以有效优化SSM框架下的数据库查询性能,提升整体应用的...
**SuperMap iDesktop 扩展插件开发:查询重叠点线面** SuperMap iDesktop 是一款强大的桌面GIS(地理信息系统)软件,它提供了一系列工具和技术用于地理数据的创建、编辑、管理和分析。本插件专注于一个特定的地理...
"雨滴网易云音乐插件(Rainmeter网易云音乐插件)"是一个为Windows操作系统设计的桌面美化工具,它能够将网易云音乐嵌入到用户的桌面背景中,提供一种独特的音乐播放体验。这款插件是基于Rainmeter软件开发的,...
综上所述,EAS扩展报表参数插件数据集是一个强大且灵活的工具,它通过参数化查询、动态显示、联动控制等功能,提升了企业级报表的定制能力和用户交互性。开发者可以通过提供的API和文档(如`AbstractParamRelation....
总的来说,使用Excel宏进行水和水蒸气参数查询是一个高效且灵活的方法,能够节省大量手动查找和计算的时间。通过理解VBA和宏的工作原理,用户可以进一步定制和优化查询功能,以满足特定的工程需求。
这个"2.72和2.73订单查询插件"是专门为ECSHOP 2.72和2.73版本设计的,旨在增强系统的订单管理功能,特别是提升了用户体验。 首先,我们要理解这个插件的核心功能——订单查询。在标准的ECSHOP系统中,用户通常需要...
此外,插件可能还提供了一些自动化功能,如自动生成齿廓、计算静态和动态载荷、分析应力分布等,大大简化了链轮设计过程。 UG,作为一款高端的三维建模软件,同样拥有强大的链轮设计能力。UG的链轮插件可能包含了一...
它不仅简化了商家跟踪包裹的工作,也使得消费者无需离开店铺就能获取到最新的物流动态,增强了购物的便捷性。同时,通过插件的使用,商家还可以收集到物流数据,分析配送效率,优化库存管理和物流策略,进一步提升...