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的插件,使得...
帆软报表查询性能SQL分析插件是一款专门针对帆软报表系统的增强工具,旨在提升报表查询效率和性能优化。此插件能够深入解析SQL查询过程,帮助用户识别并解决潜在的性能瓶颈,确保报表的快速准确生成。以下是关于这款...
问题在于,当你在使用MybatisPlus进行分页查询时,如果未正确配置PaginationInterceptor,分页参数将无法生效,你会观察到所有的数据都被查询出来。要解决这个问题,你需要在你的项目配置中添加...
总的来说,这款图形化版的重算 sign 和参数加解密插件是 Burp Suite 的强大扩展,它提高了渗透测试的效率,简化了加密和签名处理的复杂度,尤其在处理加密请求和签名验证时,提供了极大的便利。无论是在日常的安全...
"Registration_simpleregistration.xml" 这个文件是插件的核心配置文件,通常以 XML 格式存储插件的元数据、安装信息以及具体的设置选项。当将此插件上传到 OpenCart 系统后,系统会解析这个 XML 文件来识别和安装...
在IT行业中,Bootstrap是一款非常流行...总之,Twitter Bootstrap模糊查询插件是构建现代Web应用时增强搜索功能的有效工具,通过简单的API和丰富的定制选项,能够帮助开发者快速实现智能搜索功能,提升用户的交互体验。
在处理多表join查询时,传统的关系型数据库如MySQL等通常能很好地应对,但Solr作为一个非关系型的搜索引擎,其原生功能并不支持复杂的数据关联操作。本文将围绕"基于Solr的多表join查询加速方法"这一主题,深入探讨...
在实际开发中,PageHelper的使用大大简化了分页查询的实现,避免了手动处理分页逻辑的繁琐,提高了代码的可读性和维护性。通过合理配置和使用PageHelper,可以有效优化SSM框架下的数据库查询性能,提升整体应用的...
**SuperMap iDesktop 扩展插件开发:查询重叠点线面** SuperMap iDesktop 是一款强大的桌面GIS(地理信息系统)软件,它提供了一系列工具和技术用于地理数据的创建、编辑、管理和分析。本插件专注于一个特定的地理...
同时,它提供了联合查询、模糊查询和条件查询的能力,增强了数据检索的灵活性和实用性。 【知识点详解】: 1. **jsp分页**:在Web开发中,当数据量较大时,分页是必不可少的功能,可以提高用户体验并减轻服务器...
这个"2.72和2.73订单查询插件"是专门为ECSHOP 2.72和2.73版本设计的,旨在增强系统的订单管理功能,特别是提升了用户体验。 首先,我们要理解这个插件的核心功能——订单查询。在标准的ECSHOP系统中,用户通常需要...
"雨滴网易云音乐插件(Rainmeter网易云音乐插件)"是一个为Windows操作系统设计的桌面美化工具,它能够将网易云音乐嵌入到用户的桌面背景中,提供一种独特的音乐播放体验。这款插件是基于Rainmeter软件开发的,...
此外,插件可能还提供了一些自动化功能,如自动生成齿廓、计算静态和动态载荷、分析应力分布等,大大简化了链轮设计过程。 UG,作为一款高端的三维建模软件,同样拥有强大的链轮设计能力。UG的链轮插件可能包含了一...
它不仅简化了商家跟踪包裹的工作,也使得消费者无需离开店铺就能获取到最新的物流动态,增强了购物的便捷性。同时,通过插件的使用,商家还可以收集到物流数据,分析配送效率,优化库存管理和物流策略,进一步提升...
3dmax插件 物体批量替换.替换关联想要的物体
《jQuery弹出层插件简化版详解》 在Web开发中,弹出层(也称为模态窗口)是一种常见的交互设计元素,它用于在用户与主页面交互的同时提供额外的信息或者功能。jQuery作为一款强大的JavaScript库,为创建弹出层提供...
总的来说,使用Excel宏进行水和水蒸气参数查询是一个高效且灵活的方法,能够节省大量手动查找和计算的时间。通过理解VBA和宏的工作原理,用户可以进一步定制和优化查询功能,以满足特定的工程需求。