我试图在Arel和/或Rails 3中的Active Record中嵌套SELECT查询以生成以下SQL语句.
SELECT sorted.* FROM (SELECT * FROM points ORDER BY points.timestamp DESC) AS sorted GROUP BY sorted.client_id
Run Code Online (Sandbox Code Playgroud)
可以通过执行创建子查询的别名
points = Table(:points)
sorted = points.order('timestamp DESC').alias
Run Code Online (Sandbox Code Playgroud)
但后来我被困在如何将它传递给父查询(缺少调用#to_sql,这听起来很难看).
如何使用SELECT语句作为Arel(或Active Record)中的子查询来完成上述操作?也许有一种完全不同的方式来完成这个不使用嵌套查询的查询?
我在DreamHost上托管Ruby on Rails 2.0.2应用程序.它位于Apache 2服务器上,运行在Phusion Passenger之上.
应用程序经常返回500错误"Rails应用程序无法正常启动",但随机时间.它似乎发生在应用程序负载较高时,但我无法确认.它每天只能获得大约2,000次综合浏览量,所以我认为加载不应该是一个问题.
Apache日志将这500个响应与错误相关联:"脚本标头的过早结束".只需在今天上午9点查看日志,错误就会显示为每分钟三到四次.这显然是不可接受的.
不太常见的情况是,应用程序向Phusion Passenger页面投掷堆栈跟踪和错误"Broken pipe".
Rails日志不会列出任何这些错误.
这在DreamHost上托管的暂存和实时站点上都会发生,但我无法在本地开发服务器上复制它.
所以我想真正的问题是:我从哪里开始调试这个问题?